2016-09-06 8 views
0

私は、クライアントが(以前に送信または作成した)トランザクションのステータスを照会および取得できるようにする、新しいRESTベースのAPIを作成しています。クライアントがクエリを実行してトランザクションのステータスを取得できること。トランザクション自体は、そのライフサイクルにわたって状態を変更することができ、すなわち、最初は承認され、後で、バックオフィスまたは他の操作のために逆転される可能性がある。等価API?

クライアントがトランザクションのライフサイクル中にいつ呼び出すかに応じて、このクエリAPIを呼び出すと、トランザクションの詳細と状態の履歴が取得されます(承認済み、逆戻り済み等)。 API応答は、呼び出しがいつ行われるかによって異なる場合があります。このAPIは「Idempotent」APIとして機能しますか?

ありがとうございます!

+0

私はあなたが何を求めているのかよく分かりません。 「Idempotent API」とはどういう意味ですか? – inf3rno

+0

私は、トランザクションの検索APIまたは参照API(読み取り専用)であるAPIを実装しています。しかし、それが返す応答は、トランザクションの状態の変化に基づいて変化する可能性があります。したがって、ペイロードフィールドは各呼び出しごとに異なる可能性があります。このAPIが冪等であることを意味しますか? – AKon

+0

Afaik。この用語はAPIには当てはまりません。少なくとも、冪等のメソッドや操作については読んでいます。あなたが単純なGETしか持っていないなら、それは確かに等冪である。 http://labs.unacast.com/2016/02/25/on-idempotency-in-distributed-rest-apis/ – inf3rno

答えて

1

です。 RFC 2616: 9.1.2 Idempotent Methodsによれば:

方法は、(脇エラーまたは有効期限の問題から)という点で、「冪等」N> 0の同一の要求の副作用のプロパティは、単一の要求の場合と同じである持つことができ。メソッドGET、HEAD、PUT、DELETEはこのプロパティを共有します。また、OPTIONSメソッドとTRACEメソッドには副作用がありません。したがって、本質的に冪等です。

ここでのキーは「副作用」です。リクエストによって副作用としてAPIの状態が変更されることはないので、それらのAPIの数は1つと同じでなければなりません。

+0

あなたの迅速な対応に感謝します。 Idempotencyの権利は、応答ペイロードが(トランザクションの状態変更のために)各呼び出しから変更される可能性があります。 – AKon