Skip to content

開発者向けドキュメント

ArchiveBase は API ファーストで設計されています。ダッシュボードや公開サイトの画面が行う操作は、すべて同じ HTTP API を通じて実行できます。外部システムからの一括登録、メタデータの機械的な更新、収穫(ハーベスト)などは API の利用を想定しています。

まず読むもの

  • API を使う — 認証、クイックスタート、代表的なエンドポイント、エラー
  • API リファレンス (Swagger UI) — OpenAPI 仕様から生成された全エンドポイント。ブラウザ上からそのまま試せます

URL の構造

ArchiveBase はマルチテナントで、URL は次の形をとります。

/api/{account}/{service}/{db}/...
要素意味
{account}テナント所有者(アカウント)
{service}プロダクト種別の固定セグメント。dl(デジタルライブラリ)/ iiif / tei / map / text / preserve / records
{db}データベース(= 公開されるサイト 1 つ)

例: アカウント example のライブラリ letters のリソース一覧は /api/example/dl/letters/resources

リソースモデル

サイトの中身はすべて リソースという 1 つのモデルで表され、type で種別を区別します。

jsonc
{
  "id": "uuid",
  "slug": "0380-17-1",       // DB 内で一意 (任意)
  "type": "item",            // collection | item | media | annotation | tei | page ...
  "parent_id": "uuid|null",  // media→item, item→collection など階層を作る
  "title": "…",
  "body": "…",               // 長文 (翻刻・本文)。全文検索の対象
  "metadata": { },           // 自由形式 JSONB。dcterms:* キー推奨
  "is_public": true
}
  • metadata.lat / metadata.lng を持たせると地図ビュー(map)に出ます
  • metadata.thumbnail はカード/一覧のサムネイルに使われます

標準規格への対応

規格用途
IIIF Image API 3.0画像配信(info.json + 画像変換)。本番は Cantaloupe
IIIF Presentation / Content Searchマニフェスト・全文検索アノテーション
TEI (XML)翻刻テキストの取り込み(固有表現抽出)・生 XML 配信
DTS (Distributed Text Services)TEI コーパスのコレクション/ドキュメント/ナビゲーション配信
OpenAPI 3API 仕様の記述・Swagger UI の生成

執筆中

アーキテクチャ概説(Next.js / Postgres / MinIO / Elasticsearch / 各マイクロサービスの役割)、セルフホストの手引き(docker-compose.prod.yml)を追記予定。