メニュー
Amazon API Gateway
開発者ガイド

売上請求書サンプル (API Gatewayモデルとマッピングテンプレート)

以下のセクションに、API Gateway での売上請求書 API のサンプルに使用できるモデルとマッピングテンプレートの例を示します。API Gateway のモデルとマッピングテンプレートの詳細については、リクエストおよびレスポンスマッピングのモデルおよびマッピングテンプレートを作成するを参照してください。

元のデータ (売上請求書サンプル)

以下に、売上請求書サンプルの元の JSON データを示します。

Copy
{ "DueDate": "2013-02-15", "Balance": 1990.19, "DocNumber": "SAMP001", "Status": "Payable", "Line": [ { "Description": "Sample Expense", "Amount": 500, "DetailType": "ExpenseDetail", "ExpenseDetail": { "Customer": { "value": "ABC123", "name": "Sample Customer" }, "Ref": { "value": "DEF234", "name": "Sample Construction" }, "Account": { "value": "EFG345", "name": "Fuel" }, "LineStatus": "Billable" } } ], "Vendor": { "value": "GHI456", "name": "Sample Bank" }, "APRef": { "value": "HIJ567", "name": "Accounts Payable" }, "TotalAmt": 1990.19 }

入力モデル (売上請求書サンプル)

以下に、売上請求書サンプルの元の JSON データに対応する入力モデルを示します。

Copy
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "InvoiceInputModel", "type": "object", "properties": { "DueDate": { "type": "string" }, "Balance": { "type": "number" }, "DocNumber": { "type": "string" }, "Status": { "type": "string" }, "Line": { "type": "array", "items": { "type": "object", "properties": { "Description": { "type": "string" }, "Amount": { "type": "integer" }, "DetailType": { "type": "string" }, "ExpenseDetail": { "type": "object", "properties": { "Customer": { "type": "object", "properties": { "value": { "type": "string" }, "name": { "type": "string" } } }, "Ref": { "type": "object", "properties": { "value": { "type": "string" }, "name": { "type": "string" } } }, "Account": { "type": "object", "properties": { "value": { "type": "string" }, "name": { "type": "string" } } }, "LineStatus": { "type": "string" } } } } } }, "Vendor": { "type": "object", "properties": { "value": { "type": "string" }, "name": { "type": "string" } } }, "APRef": { "type": "object", "properties": { "value": { "type": "string" }, "name": { "type": "string" } } }, "TotalAmt": { "type": "number" } } }

入力マッピングテンプレート (売上請求書サンプル)

以下に、売上請求書サンプルの元の JSON データに対応する入力マッピングテンプレートを示します。

Copy
#set($inputRoot = $input.path('$')) { "DueDate": "$inputRoot.DueDate", "Balance": $inputRoot.Balance, "DocNumber": "$inputRoot.DocNumber", "Status": "$inputRoot.Status", "Line": [ #foreach($elem in $inputRoot.Line) { "Description": "$elem.Description", "Amount": $elem.Amount, "DetailType": "$elem.DetailType", "ExpenseDetail": { "Customer": { "value": "$elem.ExpenseDetail.Customer.value", "name": "$elem.ExpenseDetail.Customer.name" }, "Ref": { "value": "$elem.ExpenseDetail.Ref.value", "name": "$elem.ExpenseDetail.Ref.name" }, "Account": { "value": "$elem.ExpenseDetail.Account.value", "name": "$elem.ExpenseDetail.Account.name" }, "LineStatus": "$elem.ExpenseDetail.LineStatus" } }#if($foreach.hasNext),#end #end ], "Vendor": { "value": "$inputRoot.Vendor.value", "name": "$inputRoot.Vendor.name" }, "APRef": { "value": "$inputRoot.APRef.value", "name": "$inputRoot.APRef.name" }, "TotalAmt": $inputRoot.TotalAmt }

変換されたデータ (売上請求書サンプル)

以下に、売上請求書サンプルの元の JSON データが出力用に変換されるプロセスの一例を示します。

Copy
{ "DueDate": "2013-02-15", "Balance": 1990.19, "DocNumber": "SAMP001", "Status": "Payable", "Line": [ { "Description": "Sample Expense", "Amount": 500, "DetailType": "ExpenseDetail", "Customer": "ABC123 (Sample Customer)", "Ref": "DEF234 (Sample Construction)", "Account": "EFG345 (Fuel)", "LineStatus": "Billable" } ], "TotalAmt": 1990.19 }

出力モデル (売上請求書サンプル)

以下に、変換された JSON データ形式に対応する出力モデルを示します。

Copy
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "InvoiceOutputModel", "type": "object", "properties": { "DueDate": { "type": "string" }, "Balance": { "type": "number" }, "DocNumber": { "type": "string" }, "Status": { "type": "string" }, "Line": { "type": "array", "items": { "type": "object", "properties": { "Description": { "type": "string" }, "Amount": { "type": "integer" }, "DetailType": { "type": "string" }, "Customer": { "type": "string" }, "Ref": { "type": "string" }, "Account": { "type": "string" }, "LineStatus": { "type": "string" } } } }, "TotalAmt": { "type": "number" } } }

出力マッピングテンプレート (売上請求書サンプル)

次に、変換された JSON データ形式に対応する出力マッピングテンプレートを示します。この場合のテンプレートは、変換されていない元の JSON データ形式に基づいて変化します。

Copy
#set($inputRoot = $input.path('$')) { "DueDate": "$inputRoot.DueDate", "Balance": $inputRoot.Balance, "DocNumber": "$inputRoot.DocNumber", "Status": "$inputRoot.Status", "Line": [ #foreach($elem in $inputRoot.Line) { "Description": "$elem.Description", "Amount": $elem.Amount, "DetailType": "$elem.DetailType", "Customer": "$elem.ExpenseDetail.Customer.value ($elem.ExpenseDetail.Customer.name)", "Ref": "$elem.ExpenseDetail.Ref.value ($elem.ExpenseDetail.Ref.name)", "Account": "$elem.ExpenseDetail.Account.value ($elem.ExpenseDetail.Account.name)", "LineStatus": "$elem.ExpenseDetail.LineStatus" }#if($foreach.hasNext),#end #end ], "TotalAmt": $inputRoot.TotalAmt }