フューチャーサイト/文書管理 2.0 データベース WEB API(案) (2008.03.24 版) http://db.xmlconsortium.org ■ … 必須機能 ▲ … オプション機能 ■ 文書 - 取得 URI : /archive/{document-id} METHOD : GET {document-id} 文書を一意に識別可能な文字列。文書ID。 ブラウザでの1ページに相当する文書全体を XHTML 形式で取得するために使用します。 document-id は文書登録時にデータベース内部で採番されます。一意に識別さえできれ ばよいので実装によって数値の連番かも知れませんし、UUID かも知れません。 例) http://db.xmlconsortium.org/archive/1543 http://db.xmlconsortium.org/archive/550e8400-e29b-41d4-a716-446655440000 ▲ 文書 - 登録 URI : /archive METHOD : POST (multipart/form-data, name="document") 登録する XHTML 全体を POST します。 登録できた場合の応答は以下の通りです。 201 Created Location: http://db.xmlconsortium.org/archive/1544 エラーの場合はエラーに応じた適切なステータスコードを返してください。 正常終了およびエラー時ともにエンティティボディの内容は任意です。 ▲ 文書 - 更新 URI : /archive/{document-id} METHOD : PUT (multipart/form-data, name="document") 上書き更新する XHTML 全体を PUT します。 更新できた場合の応答は以下の通りです。 200 OK エラーの場合はエラーに応じた適切なステータスコードを返してください。 正常終了およびエラー時ともにエンティティボディの内容は任意です。 ▲ 文書 - 削除 URI : /archive/{document-id} METHOD : DELETE 指定のドキュメントを削除します。 削除できた場合の応答は以下の通りです。 200 OK エラーの場合はエラーに応じた適切なステータスコードを返してください。 正常終了およびエラー時ともにエンティティボディの内容は任意です。 ■ 文書リスト - 取得 URI : /archive METHOD : GET データベースに格納されている文書のメタデータ(文書ID、タイトル、著作者等)の リストを XML 形式で返します。 ※メタデータの詳細は今回の使用する文書スキーマに準拠しますので、そちらを参照 してください。 ※今回は登録される文書数が少ないことを理由に全件取得の方法のみを提供します。 しかし本来は n 件ずつ結果を取得する方法が必要です。AtomPub または OpenSearch で使用されている方法を採用することが考えられます。 RFC 5023 The Atom Publishing Protocol, 10 Listing Collections OpenSearch 1.1 Draft 3, 7 OpenSearch response elements ■ タグ - 検索 URI : /search/tags/{tag-name-1},{tag-value-1};{tag-name-2},{tag-value-2};... METHOD : GET 指定のタグが付与されている文書を検索し、結果をリスト形式で提供します。 リスト形式は [文書リスト - 取得] で得られるものと同様です。 例) http://db.xmlconsortium.org/tags/speaker,John+Doe;applause,loud ここでは原則として名前と値で一組になるものを「タグ」と呼称しますが、値が空である タグも許容し、この場合はタグの名前のみを検索条件として指定します。 例) http://db.xmlconsortium.org/tags/remarkable タグを複数指定する場合はそれぞれをセミコロン ";" で区切ってください。 ■ タグ - 登録 URI : /archive/{document-id}/tags/{tag-name} METHOD : PUT (tag-value) 指定の文書にタグを追加します。同名のタグが存在する場合は上書きされます。 登録できた場合の応答は以下の通りです。 新規作成した場合 ---------------- 201 Created Location: http://db.xmlconsortium.org/1543/tags/this+is+great 更新した場合 ------------ 200 OK エラーの場合はエラーに応じた適切なステータスコードを返してください。 正常終了およびエラー時ともにエンティティボディの内容は任意です。 ■ タグ - 更新 更新は登録の機能を使って行うことができます。 ■ タグ - 削除 URI : /archive/{document-id}/tags/{tag-name} METHOD : DELETE 削除できた場合の応答は以下の通りです。 200 OK エラーの場合はエラーに応じた適切なステータスコードを返してください。 正常終了およびエラー時ともにエンティティボディの内容は任意です。 ■ 検索 - クエリ発行 URI : /search/xquery METHOD : GET, POST (q) XQuery を使用してデータベースを検索します。クエリ形式および結果形式は実装に依存 します。 ■ 検索 - 全文検索 URI : /search/full-text METHOD : GET, POST (パラメータは実装依存) データベースを全文検索します。パラメータおよび結果形式は実装に依存します。 以上