On This Page
REST API | Visa Platform Connect
パッチ適用の考慮
TMS
内のパッチ適用は 変更が一連のアクションとして現れる JavaScript Object Notation (JSON) Patch (RFC6902) ではなく、JSON マージパッチ (RFC7396) に基づいており、POST リクエストとして修正される同じ構造に従います。パッチリクエストは、変更する必要があるフィールドのみをリクエストで提供する必要がある PUT リクエストとは異なり、こうした変更は既存の記録と統合されます。
考慮すべき点は以下のとおりです。
- フィールドが削除されるとき、nullの値を入力してフィールドを削除できます。
- フィールドがnullに設定されており、現在の記録にはないとき、これは無視されます。
- nullに親コンテナを設定して、フィールドグループを削除できます。
IMPORTANT
配列値は全体としてパッチ適用されるため、パッチ適用のリクエストでは、パッチ適用の後に予測される最終値を提供します。
パッチ適用の例
以下は、パッチ適用の規則のユースケースの例です。
例: 有効期限月と年の値の更新
以下に表示されているように、GET リクエストをPayment Instrumentに送信して既存の値を入手できます。
GET /tms/v1/paymentinstrument/<id>
反応は以下に示されています。
{ "_links": { "self": { "href": "https://api.cybersource.com/tms/v1/paymentinstruments/9000000000000000002001" } }, "id": "9000000000000000002001", "object": "paymentInstrument", "state": "ACTIVE", "card": { "expirationMonth": "09", "expirationYear": "2017", "type": "visa", "issueNumber": "01" }, "_embedded": { "instrumentIdentifier": { "_links": { "self": { "href": "https://api.cybersource.com/tms/v1/instrumentidentifiers/9000000000000000001001" } }, "id": "9000000000000000001001", "object": "instrumentIdentifier", "state": "ACTIVE", "card": { "number": "411111XXXX11112" } } } }
card.expirationMonth
(カードの有効期限月) と card.expirationYear
(カードの有効期限年) フィールドだけを更新するには、以下のパッチリクエストを送信します。PATCH /tms/v1/paymentinstrument/<id> { "card": { "expirationMonth": "10", "expirationYear": "2020" } }
/tms/v1/paymentinstrument/<id>
に他の GET リクエストを発行することで、新しい値を見ることができます。反応は以下に示されてれています。{ "_links": { "self": { "href": "https://api.cybersource.com/tms/v1/paymentinstruments/9000000000000000002001" } }, "id": "9000000000000000002001", "object": "paymentInstrument", "state": "ACTIVE", "card": { "expirationMonth": "10", "expirationYear": "2020", "type": "visa", "issueNumber": "01" }, "_embedded": { "instrumentIdentifier": { "_links": { "self": { "href": "https://api.cybersource.com/tms/v1/instrumentidentifiers/9000000000000000001001" } }, "id": "9000000000000000001001", "object": "instrumentIdentifier", "state": "ACTIVE", "card": { "number": "411111XXXX11112" } } } }
例: カード発行番号 (1 つのフィールド) とバイヤー情報 (コンテナ) を削除
最初に、現在の値を見るために
/tms/v1/paymentinstrument/<id>
に GET リクエストを送信します。{ "_links": { "self": { "href": "https://api.cybersource.com/tms/v1/paymentinstruments/9000000000000000002001" } }, "id": "9000000000000000002001", "object": "paymentInstrument", "state": "ACTIVE", "card": { "expirationMonth": "09", "expirationYear": "2017", "type": "visa", "issueNumber": "01" }, "buyerInformation": { "companyTaxID": "12345", "currency": "USD" }, "_embedded": { "instrumentIdentifier": { "_links": { "self": { "href": "https://api.cybersource.com/tms/v1/instrumentidentifiers/9000000000000000001001" } }, "id": "9000000000000000001001", "object": "instrumentIdentifier", "state": "ACTIVE", "card": { "number": "411111XXXX11112" } } } }
/tms/v1/paymentinstrument/<id>
にパッチリクエストを送信し、以下のペイロードを含めます。{ "card": { "issueNumber": null }, "buyerInformation": null }
結果は
/tms/v1/paymentinstrument/<id>
への GET リクエスト 内で見ることができます。{ "_links": { "self": { "href": "https://api.cybersource.com/tms/v1/paymentinstruments/9000000000000000002001" } }, "id": "9000000000000000002001", "object": "paymentInstrument", "state": "ACTIVE", "card": { "expirationMonth": "09", "expirationYear": "2017", "type": "visa" } "_embedded": { "instrumentIdentifier": { "_links": { "self": { "href": "https://api.cybersource.com/tms/v1/instrumentidentifiers/9000000000000000001001" } }, "id": "9000000000000000001001", "object": "instrumentIdentifier", "state": "ACTIVE", "card": { "number": "411111XXXX11112" } } } }
例: 配列のパッチ適用
元の値:
{ "a": [ { "b": "c", "d": "e" } ] }
パッチのペイロード:
{ "a": [ { "z": "y" } ] }
最終値:
{ "a": [ { "z": "y" } ] }