CoupaにおけるXMLとJSONの違い
JSONのデータタイプ
JSONの場合、Coupaはnull、boolean、number、stringsをサポートしています。 精度、バージョン、および同様の値は、数値データ型を使用します。たとえば、小数点以下の精度はstringです。 明示的に呼び出されないすべての値は、stringデータ型を使用します。
JSONを使用する場合とXMLを使用する場合のCoupaのREST APIの仕組みには、4つの違いがあります。
JSONは親ノードを使用しない
XMLでは、応答の開始と終了で親ノードを取得します。 JSONでは、レスポンスで利用可能な親ノードはありません。
XMLレスポンス
<?xml version="1.0" encoding="UTF-8"?> <account> <id type="integer">41</id> <created-at type="dateTime">2016 -10 -07 T 06:56:43 - 07:00</created-at> <updated-at type="dateTime">2016 -10 -07 T 06:56:43 - 07:00</updated-at> <name>account_1475848602.731066227</name> <code>segment 11475848602928</code> <active type="boolean">true</active> <segment-1>segment 11475848602928</segment-1> <segment-2 nil="true" /> --------------------------------------------- </account>JSONレスポンス
{" id ": 43 ," created - at ":" 2016 -10 -07 T 06:59:46 - 07:00 "," updated - at ":" 2016 -10 -07 T 06:59:46 - 07:00 "," name ":" account_1475848721.456090234 "," code ":" segment 11475848721222 "," active ": true ," segment -1 ":" segment 11475848721222 "}結果がない場合の異なるレスポンス
GET検索に一致する結果がない場合、XMLレスポンスは404エラーをスローし、JSONレスポンスは空白の配列を提供します。
GET: https://dashmaster17-0.coupadev.com/api/accounts?id=NON_EXISTING
XMLレスポンス
<?xml version="1.0" encoding="UTF-8"?> <errors> <error>検索条件に一致する結果はありません。</error> </errors>JSON GET API
[ ]エラーメッセージの異なるノード
XMLレスポンス
<?xml version="1.0" encoding="UTF-8"?> <errors> <error>セグメント1 -コストセンターは空白にできません。</error> </errors>JSONレスポンス
{" errors ":{" account ":["セグメント1 -コストセンターは空白にできません"]}}住所API呼び出しの国に対する異なるレスポンス
以下は、POST API呼び出しの2つのレスポンスセットです: http://localhost:3000/api/addresses
XMLレスポンス
<?xml version="1.0" encoding="UTF-8"?> <address> <id type="integer">97</id> <created-at type="dateTime">2016 -10 -07 T 07:19:07 - 07:00</created-at> <updated-at type="dateTime">2016 -10 -07 T 07:19:07 - 07:00</updated-at> <name>address_1475849947.739228964</name> <location-code nil="true" /> <street1>2 W 5 th Ave</street1> -------------------------------- <country> <id type="integer">223</id> <code>US</code> <name>アメリカ合衆国</name> </country> -------------------------------- </address>JSONレスポンス
{" id ": 99 ," name ":" address_1475850128.91 "," street 1 ":" 2 W 5 th Ave "," street 2 ":" Suite 300 "," city ":" San Mateo "," state ":" CA "," postal_code ":" 94404 "," country_id ": 223 ," address_owner_type ":" BusinessGroup "," parent_address_id ": null ," country ":" United States "}