WEKO コンテンツ操作API インターフェース仕様書 ■はじめに  本書は、NetCommons2上で動作するリポジトリモジュール「WEKO」に登録されたコンテンツ情報を  登録、更新、削除するAPI(コンテンツ操作API)のインターフェース仕様をまとめたものである。     ■NC2/WEKO  環境はNC2(ver2.4.1.0以上)上で動作しているWEKO(ver.2.0.7以上)を対象とする。  ※WEKO ver.2.0.5以下は更新、削除のAPIが存在しない。     ■コンテンツ操作API 仕様  WEKOのコンテンツ操作APIはWEKOに登録されたコンテンツ登録、更新、削除を行うAPIである。  コンテンツ操作APIは、SWORDプロトコルを使用する。  WEKO ver2.0.7現在で対応しているSWORDはver2.0である。  (SWORD ver2.0のプロファイル:http://swordapp.github.io/SWORDv2-Profile/SWORDProfile.html)    ◆サービス文書取得   ‐リクエスト先URL    https://xxx.repo.nii.ac.jp/weko/sword/servicedocument.php   ‐リクエスト情報     ‐Authorization = "[ログインID]:[パスワード]"をBase64でエンコードした文字列(★必須)      NC2ユーザー認証情報。      「JAIRO Open_SCfWアカウント情報.xls」に記載しているユーザーアカウントをご利用ください。     ‐X-On-Behalf-Of = "[コンテンツ所有者のログインID]"(任意)(※)   ‐レスポンス    ・ステータスコード     下記いずれかのステータスコードが返ります。     ‐200(OK) :成功時     ‐400(Bad Request) :リクエスト取得エラー     ‐401(Unauthorized) :認証エラー     ‐500(Internal Server Error) :サーバーエラー    ・ボディ:サービス文書(XML)     「Authorization(X-On-Behalf-Ofがあればこちら)」で指定したユーザーが登録可能なインデックスツリー情報。     サンプルは下記の通り                   2.0       false       false       512000             【リポジトリ名|WEKOのGUIから変更可】             Repository Review       application/zip       This is the review repository.       true       Deposited items(zip) will be treated as WEKO import file which contains any WEKO contents information, and will be imported to WEKO.       This collection accepts packages from any admin/moderator users on WEKO.       WEKO                         【インデックスID】       【インデックス名】             ・・・                       ◆登録   ‐リクエスト先URL(サービス文書から取得したdeposit URL)    https://xxx.repo.nii.ac.jp/weko/sword/deposit.php   ‐リクエスト情報    ・メソッド:POST    ・ヘッダー:     ‐Authorization = "[ログインID]:[パスワード]"をBase64でエンコードした文字列(★必須)     ‐Content-Type = "application/zip"(★必須)     ‐Content-Disposition = "filename='[更新用メタデータファイルのファイル名]'"(★必須)     ‐X-On-Behalf-Of = "[コンテンツ所有者のログインID]"(任意)(※)    ・ボディ:WEKOインポート形式(.zip)のバイナリデータ   ‐レスポンス    ・ステータスコード     下記いずれかのステータスコードが返ります。     ‐201(OK):成功時     ‐400(Bad Request) :リクエスト取得エラー     ‐401(Unauthorized) :認証エラー     ‐500(Internal Server Error) :サーバーエラー    ・ボディ:登録結果(XML)     WEKOに登録したコンテンツのURL一覧。     サンプルは下記の通り。                   Repository Review       【先頭のアイテムID】-【末尾のアイテムID】       2013-08-20JST16:46:0432400             【登録ユーザーのログインID】       【登録ユーザーのメールアドレス】             # 登録したコンテンツの詳細画面URL                   ・・・                         Deposited items(zip) will be treated as WEKO import file which contains any WEKO contents information, and will be imported to WEKO.       WEKO       SWORD Client for WEKO V2.0           ◆更新   ‐リクエスト先URL    https://xxx.repo.nii.ac.jp/?action=repository_uri&item_id=[更新を実施するアイテムID]   ‐リクエスト情報    ・メソッド:PUT    ・ヘッダー:     ‐Authorization = "[ログインID]:[パスワード]"をBase64でエンコードした文字列(★必須)     ‐Content-Type = "application/zip"(★必須)     ‐Content-Disposition = "filename='[更新用メタデータファイルのファイル名]'"(★必須)     ‐X-On-Behalf-Of = "[コンテンツ所有者のログインID]"(任意)(※)    ・ボディ:更新用メタデータファイル(.zip)のバイナリデータ      WEKOインポート形式のzipファイル内の「import.xml」に下記の情報を追加したzipファイル。      ※追記する場所はタグの下とし、タグ1つに対して       タグが1つ出力されるようにする。       の属性値 item_id, item_no の値は対応するの       属性値と同値を設定すること。     -------------------------------------------------------------------------------------------             https://xxx.repo.nii.ac.jp/?action=repository_uri&item_id=[更新を実施するアイテムID]           -------------------------------------------------------------------------------------------   ‐レスポンス    下記いずれかのステータスコードが返ります。    ‐200(OK) :成功時    ‐400(Bad Request) :リクエスト取得エラー    ‐401(Unauthorized) :認証エラー    ‐500(Internal Server Error) :サーバーエラー    ◆削除   ‐リクエスト先URL    https://xxx.repo.nii.ac.jp/?action=repository_uri&item_id=[削除を実施するアイテムID]   ‐リクエスト情報    ・メソッド:DELETE    ・ヘッダー:     ‐Authorization = "[ログインID]:[パスワード]" をBase64でエンコードした文字列(★必須)     ‐X-On-Behalf-Of = "[コンテンツ所有者のログインID]"(任意)(※)    ・ボディ:なし   ‐レスポンス    下記いずれかのステータスコードが返ります。    ‐204(No Contents) :成功時    ‐401(Unauthorized) :認証エラー    ‐500(Internal Server Error) :サーバーエラー      ※ X-On-Behalf-Of は代理投稿で使用します。    指定しない場合は Authorization で指定したログインIDのユーザーをコンテンツ所有者と見なします。    以上