外部連携API 共通仕様
外部システム連携APIに共通仕様を以下に示す。
1. 認証
外部システム連携APIではOAuth2.0を使用した認証を行う。
認証が成功するとアクセストークンが取得できる。アクセストークンはリクエストヘッダ情報の「Authorization」に設定する。
アクセストークンの取得方法については以下の資料を参照。
インフォマートAPI利用におけるOAuth2.0による認証手順(PDF)
2. リクエスト
2.1. HTTPメソッド
GET、POST、PUTのいずれを指定する。
指定するメソッドは各APIの仕様を参照。
2.2. ヘッダ情報
ヘッダ情報には下記の値を指定する。
「Authorization」は必須指定項目。
「Content-type」はHTTPメソッドがPOSTとPUTの場合、必須指定項目。
キー | 設定値 | 備考 |
---|---|---|
Authorization | Bearer + アクセストークンex) Bearer 1234a567-b890-1c23-4567-89d01e2f3a45 | 認可情報を設定する。 認証時に取得したアクセストークンをBearerに付加し設定する。 |
Content-type | application/json | HTTPメソッドがPOST,PUTの場合、ボディ情報の形式を設定する。 ボディ情報がJSON形式の場合は「application/json」、XML形式の場合は「text/xml」を設定する。 |
text/xml | ||
Accept | application/json | レスポンスで受信する形式を設定する。 JSON形式で受信する場合は「application/json」、XML形式で受信する場合は「text/xml」を設定する。 当項目を指定する際はクエリ文字列やボディ情報の「レスポンス形式(response_type)」と合わせる必要がある。 当項目はクエリ文字列やボディ情報が不正だった場合(JSONのカンマやXMLのタグの漏れなど)、クエリ文字列やボディ情報の「レスポンス形式(response_type)」が不正だった場合に適用される。 |
text/xml |
2.3. クエリ文字列
HTTPメソッドがGETの場合は、URLにパラメータをクエリ文字列として付加し、リクエストする。
その際のパラメータは文字コードを「UTF-8」にし、適切にURLエンコードすること。
レスポンスのボディ形式を決定する「レスポンス形式(response_type)」は下記の値を設定する。
その他項目は各APIの仕様を参照。
パラメータ名 | 設定値 | 備考 |
---|---|---|
response_type | json | レスポンスのボディ形式をJSON形式にする。 |
xml | レスポンスのボディ形式をXML形式にする。 |
2.4. ボディ情報
HTTPメソッドがPOST,PUTの場合は、ボディ情報にパラメータを設定し、リクエストする。
パラメータはJSON形式またはXML形式で設定する。
その際のパラメータは文字コードを「UTF-8」にすること。
レスポンスのボディ形式を決定する「レスポンス形式(response_type)」は下記の値を設定する。
その他項目は各APIの仕様を参照。
パラメータ名 | 設定値 | 備考 |
---|---|---|
response_type | json | レスポンスのボディ形式をJSON形式にする。 |
xml | レスポンスのボディ形式をXML形式にする。 |
2.5. 利用不可文字
クエリ文字列、ボディ情報には以下の文字は使用できない。含まれていた場合、自動で除去を行う。
利用不可文字 | ||
---|---|---|
% | パーセント | |
^ | キャレット | |
* | アスタリスク | |
( | ) | 丸括弧 |
[ | ] | 角括弧 |
< | > | 山括弧 |
' | シングルクォーテーション | |
" | ダブルクォーテーション | |
\t | タブ |
3. レスポンス
3.1. HTTPステータスコード
HTTPステータスコードとAPIの実行結果の関係は以下のとおり。
No | HTTPステータスコード | エラーの内容 |
---|---|---|
1 | 200(ok) | 成功。 |
2 | 400(Bad request) | リクエストが不正 ex)JSON/XMLの書式不正やJSON/XMLに必要な要素が記述されていない。 |
3 | 401(Unauthorized) | 認証エラー ex)アクセストークンの不正や期限切れ。 |
4 | 403 (Forbbiden) | 権限なしエラー ex)有料会員の資格なし。 |
5 | 404(Not Found) | リソースなし ex)URLに誤りがある。 |
6 | 405(Method Not Allowed) | 許可されていないメソッド ex)POSTが許可されていないURIに対してPOSTメソッドを利用する。 |
7 | 415(Unsupported Media Type) | サポートしていないメディアタイプ ex)リクエストヘッダ情報の「Content-type」に「application/json」、「text/xml」以外を設定した。 |
8 | 500(Internal Server Error) 502(Bad Gateway ) |
サーバー内部エラー ex)サーバーの内部的な問題で処理が完了しない。 発生時はシステム管理者にお問い合わせください。 |
9 | 503(Service unavailable) | サービス利用不可 ex)メンテナンス中のため要求を受け付けられない。 |
3.2.ヘッダ情報
ヘッダ情報には下記の値が返却される。
ヘッダ名 | 設定値 | 備考 |
---|---|---|
Content-type | application/json; charset=UTF-8 | ボディ情報がJSON形式の場合、設定される。 |
text/xml; charset=UTF-8 | ボディ情報がXML形式の場合、設定される。 |
3.3.ボディ情報
ボディ情報の形式はリクエストのクエリ文字列(GETの場合)またはボディ情報(POST,PUTの場合)の 「レスポンス形式(response_type)」によって決定される。
リクエストのクエリ文字列またはボディ情報が不正だった場合(JSONのカンマやXMLのタグの漏れなど)や クエリ文字列またはボディ情報の「レスポンス形式(response_type)」が不正だった場合、 リクエストのヘッダ情報の「Accept」によって決定される(「Accept」が未設定ならJSON形式)。
3.3.1.JSON形式
基本フォーマットは以下のとおり。
要素名・階層 | 要素内容 | 型 | 備考 |
---|---|---|---|
result | 処理結果 | 文字列 | 成功時:"ok" 失敗時:"ng" |
error_list[] | エラーリスト | 配列 | 成功時:null 失敗時:以下の要素を設定 ※エラーリストは複数件出力されることもある |
error_item | エラー項目名 | 文字列 | 特定の項目に紐付かないエラーの場合はnull |
error_code | エラーコード | 文字列 | エラーメッセージ一覧参照 |
error_detail | エラー内容 | 文字列 | エラーメッセージ一覧参照 |
結果サンプル (便宜上、コメントや改行・空白を入れている。)
{
"result" : "ng",
"error_list" : [{
"error_item" : null,
"error_code" : "E100006",
"error_detail" : "請求書書式設定が取得できません。"
}, {
"error_item" : "details",
"error_code" : "E000021",
"error_detail" : "明細情報は1000件以内にしてください。"
}, {
"error_item" : "depositor_kana",
"error_code" : "E000023",
"error_detail" : "預金者名カナは半角カナ大文字、半角英数字記号30文字以内で入力してください。"
}]
}
3.3.2.XML形式
基本フォーマットは以下のとおり。
要素名・階層 | 要素内容 | 型 | 備考 |
---|---|---|---|
result | 処理結果 | 文字列 | 成功時:"ok" 失敗時:"ng" |
error_list[] | エラーリスト | 配列 | 成功時:ブランク 失敗時:以下の要素を設定 ※エラーリストは複数件出力されることもある |
error_item | エラー項目名 | 文字列 | 特定の項目に紐付かないエラーの場合はnull |
error_code | エラーコード | 文字列 | エラーメッセージ一覧参照 |
error_detail | エラー内容 | 文字列 | エラーメッセージ一覧参照 |
結果サンプル (便宜上、コメントや改行・空白を入れている。)
<?xml version="1.0" encoding="UTF-8"?>
<DataRoot>
<result>ng</result>
<error_list>
<error_item />
<error_code>E100006</error_code>
<error_detail>請求書書式設定が取得できません。</error_detail>
</error_list>
<error_list>
<error_item>details</error_item>
<error_code>E000021</error_code>
<error_detail>明細情報は1000件以内にしてください。</error_detail>
</error_list>
<error_list>
<error_item>depositor_kana</error_item>
<error_code>E000023</error_code>
<error_detail>預金者名カナは半角カナ大文字、半角英数字記号30文字以内で入力してください。</error_detail>
</error_list>
</DataRoot>
注)XMLの場合は、レスポンスでnullが設定される箇所はブランクをリターンする。
上記のサンプルだと、5行目の