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として規定されていないタグが含まれていた場合は、無視すること。