コンテンツにスキップ

REST API

REST API は PHP API の上に構築されたサービス層であり、PHP で利用可能な操作のほとんど(ただし全てではない) が REST を使用しても利用できます。

エンドポイント

API は Omeka S インストールのルートの下にある/apiに位置しています。

フォーマット

HTTP レスポンスは、JSON を使用して Linked Data を転送する方法であるJSON-LDでフォーマットされます。

リクエストのペイロードも JSON-LD であるべきですが、Omeka S は時折クライアントに特定の構造を フォローすることを要求することがあります。これは同じデータが代替の有効な JSON-LD 構造によって表現されうる にも関わらずです。ペイロードが含まれるリクエストの Content-Type はapplication/jsonでなければ なりません(マルチパートリクエストを送信する場合はmultipart/form-data)。フォーマット指定子 (例:application/ld+json)を含むことも許容されます。

認証

API は公開リソースへの匿名アクセスを許可しています(つまり、非プライベートデータの読み取り)。ログインユーザの みがアクセス可能なアクションを実行したりデータを閲覧するためには、リクエストの認証が必要です。

認証には、すべてのリクエストに 2 つの追加の GET パラメータを含める必要があります: key_identitykey_credential。Omeka S ユーザは、自分のユーザ編集ページの "API キー"タブで API キーを生成できます。

API 操作

検索

GET /api/:api_resource

リソースを検索またはリストする場合、オプションで条件を指定できます。フィルタリング、制限、または検索結果を 変更するためのパラメータはクエリ文字列の GET パラメータとして渡されます。追加のページへのリンクはLinkヘッダで 与えられます。rel="next"のリンクがシーケンスの次のページです。適切な場合には、rel値がprevfirstlast のリンクも提供されます。

Omeka S 3.0.0 から、検索レスポンスには全ページにわたる結果の合計数を示すOmeka-S-Total-Resultsヘッダが含まれます。

読み取り

GET /api/:api_resource/:id

既知の ID で単一のリソースを取得します。idパラメータは必須です。

作成

POST /api/:api_resource

リソースを作成します。JSON ペイロードが必要です。

ファイルのアップロード

ファイルのアップロードを伴う作成操作については、マルチパートリクエスト(Content-Type multipart/form-data)がサポートされています。マルチパートリクエストでは、通常の JSON リクエストボディを dataという名前の「フィールド」として指定する必要があります。asset API リソースは関連するファイルがfileと 名付けられることを期待しています。メディアをアップロードする場合(mediaの作成操作やitemの作成または更新操作の 一部として)、ファイルは「配列」として名付けられることが期待されています(例:file[0]file[1])。メディアや アイテムの JSON ボディは、この配列のインデックスをfile_indexキーで指定します。

"o:ingester": "upload",
"file_index": 0,

...

更新

PUT /api/:api_resource/:id

リソースを更新します。id URL パラメータは必須です。JSON ペイロードが必要です。 ペイロードは、指定した ID の既存のリソースを完全に更新・置き換えます。したがって、変更を行う場合は、 通常はリソースの現在の状態を読み取り、返された JSON を変更して、それを更新として提出することが賢明です。 代替として「部分的に」更新を実行することもできます。

部分的更新(パッチ)

PATCH /api/:api_resource/:id

指定されていないキーのデータを保持しながらリソースを更新します。id URL パラメータは必須です。JSON ペイロードが必要です。 アイテム、アイテムセット、メディアの「値」としての RDF プロパティの任意の値を指定すると、一般的にその値が 「更新」されるとみなされます(つまり、RDF プロパティの値が 1 つでも指定されると、渡されなかった他の全ての値が 削除されるということです)。つまり、値はパッチ目的で一つの大きな「キー」であるかのように扱われます。

削除

DELETE /api/:api_resource/:id

リソースを削除します。id URL パラメータは必須です。