HTTPレスポンス
HTTPレスポンスの構成要素のうち、ステータスコードとボディについて説明する。大きく以下の3つに分類される。
正常に完了した場合
200 OKを返す。主にリソース情報取得系API(GETメソッドのHTTPリクエスト)で返す。ボディは、要求した情報をAcceptヘッダーで指定されたコンテントタイプで返す。
正常に受け付けられ、非同期に処理が開始された場合
202 Acceptedを返す。主にリソース情報取得系API以外で、時間がかかる処理を非同期にタスク実行する場合に返す。ボディは、タスク情報をAcceptヘッダーで指定されたコンテントタイプで返す。(現状はXMLのみ)
<task>
<id>タスクID</id>
<status>waiting</status>
<progress>0</progress>
<starttime>開始時刻</starttime>
<resource id="リソースID"/>
</task>
XMLには、内部の制御用の情報が含まれる場合がある。APIとして規定されていないタグが含まれていた場合は、無視すること。
エラーが発生した場合
HTTPリクエストを処理、または受け付ける過程でエラーが発生した場合、4xx ~ 5xx を返す。
(詳細は「使用するステータスコード一覧」参照)
ボディは、エラー情報をAcceptヘッダーで指定されたコンテントタイプで返す。(現状はXMLのみ)
提供基盤リージョンマネージャでエラーが発生した場合
<error>
<message>メッセージ本文</message>
<arg>引数1</arg>
<arg>引数2</arg>
...
<request_id>リクエストID</request_id>
</error>
提供基盤環境でエラーが発生した場合
<errors>
<error>
<code>メッセージID</code>
<message>メッセージ本文</message>
<arg>引数1</arg<
<arg>引数2</arg>
...
<request_id>リクエストID</request_id>
<AvailabilityZone>エラーが発生したアベイラビリティゾーン</AvailabilityZone>
<cause>
<product>関連製品名</product>
<resource_name>連携製品のリソース名</resource_name>
<request>関連製品に対し要求した情報</request>
<message>関連製品の復帰情報</message>
</cause>
</error>
<error>
省略(※)
</error>
…
</errors>
※複数のアベイラビリティゾーンでエラーが発生した場合のみ、複数のerrorタグが表示される。
メッセージ本文は、英文のみで、引数を埋め込む部分は${番号}で表す。
完全なメッセージは、API利用者側で引数をメッセージ本文内に展開することで、構築できる。
例:メッセージID=67114, メッセージ本文="can not copy file [${0}->${1}]", 引数="a.txt","b.txt"
⇒FJSVrcx:ERROR:67114:can not copy file [a.txt->b.txt]
causeタグは、本製品と連携する製品から復帰したいづれかの情報(関連製品名、連携製品のリソース名、関連製品に対し要求した情報、関連製品の復帰情報)が存在する場合に出力する。
なお、XMLは、詳細なエラー情報を追加など拡張される場合がある。APIとして規定されていないタグが含まれていた場合は、無視すること。