CoupaにおけるXMLとJSONの違い
このページは機械翻訳を使用して翻訳されています。
JSONのデータ型
JSONの場合、Coupaはnull、boolean、number、stringsをサポートしています。精度、バージョン、および類似の値は数値データタイプを使用します。たとえば、小数精度は文字列です。明示的に呼び出されていないすべての値は文字列データタイプを使用します。
JSONを使用する場合とXMLを使用する場合のCoupaのREST APIの動作には、注意すべき4つの違いがあります。
1. JSONは親ノードを使用しません
XMLでは、応答の開始時と終了時に親ノードを取得します。JSONでは、応答に使用できる親ノードがありません。
XML応答
<?xml version="1.0" encoding="UTF-8"?> <account> <id type="integer">41</id> <created-at type="dateTime">2016-10-07T06:56:43-07:00</created-at> <updated-at type="dateTime">2016-10-07T06:56:43-07:00</updated-at> <name>account_1475848602.731066227</name> <code>segment11475848602928</code> <active type="boolean">true</active> <segment-1>segment11475848602928</segment-1> <segment-2 nil="true" /> --------------------------------------------- </account>
JSONレスポンス
{ "id": 43, "created-at": "2016-10-07T06:59:46-07:00", "updated-at": "2016-10-07T06:59:46-07:00", "name": "account_1475848721.456090234", "code": "segment11475848721222", "active": true, "segment-1": "segment11475848721222" }
2. 結果なしに対する異なる応答
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>No results match your search criteria.</error> </errors>
JSON GET API
[ ]
3. エラーメッセージの異なるノード
XML応答
<?xml version="1.0" encoding="UTF-8"?> <errors> <error>Segment 1 - Cost Center can't be blank.</error> </errors>
JSON応答
{ "errors": { "account": [ "Segment 1 - Cost Center can't be blank" ] } }
4. 国別の住所APIコールの応答が異なります
<b id="i42"><b id="i41"><b id="i40">以下は、POST API呼び出しに対する2つの応答セットです</b></b></b><b id="i43"><a id="x28" xid="i18.1.1">。</a></b> 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-07T07:19:07-07:00</created-at> <updated-at type="dateTime">2016-10-07T07:19:07-07:00</updated-at> <name>address_1475849947.739228964</name> <location-code nil="true" /> <street1>2 W 5th Ave</street1> -------------------------------- <country> <id type="integer">223</id> <code>US</code> <name>United States</name> </country> -------------------------------- </address>
JSON応答
{ "id": 99, "name": "address_1475850128.91", "street1": "2 W 5th Ave", "street2": "Suite 300", "city": "San Mateo", "state": "CA", "postal_code": "94404", "country_id": 223, "address_owner_type": "BusinessGroup", "parent_address_id": null, "country": "United States" }