開発者向けドキュメント
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 3 | API 仕様の記述・Swagger UI の生成 |
執筆中
アーキテクチャ概説(Next.js / Postgres / MinIO / Elasticsearch / 各マイクロサービスの役割)、セルフホストの手引き(docker-compose.prod.yml)を追記予定。