我々は識別子でリソースをプルする一連のRESTサービスを提供していますが、最近公開パラメータを渡して監査を保存することを義務づけています。今RESTベストプラクティスコンテキストパラメータを使用したGET
何に使用されるように...
GET entity/{id}
が何かのように変身...
GET entity/{id}?requestName=&requestingOrganization=&reasonForUse=&verificationMethod=&otherAuditDisclosureProperties....
entity
の状態が変化し、しかし、我々は、追加を監査しなければならない、まだ冪等ではありませんそれを提供するために各コールの情報
代わりにボディを構築することが考えられましたが、それはGETにとっては適切ではないようでした。これは、クエリ/フィルタリングの意図がないクエリパラメータを使用する第2の手法です。これらの付加的なパラメータは、要求時点で捕捉された真のコンテキスト情報である。これらは、SOAP本体の外部にあるSOAP呼び出し内のSAML属性と同等です(これにより、可能なヘッダー属性と考えることができます)。
この情報は中継されるため、提供される認証トークンは、コンテキストを実際に呼び出すサービスユーザのものであり、実際のものではありません。元の呼び出し元のIDは、信頼フレームワークの周囲で暗黙的に信頼されています。
どのようにこの動詞/パスを定義しますか?
これらのパラメータは、サーバーによって推論されるか、クライアントによって定義される必要がありますか?これらのパラメータは要求ごとに提供されるのか、クライアント/サーバアーキテクチャのようにクライアントにグローバルにすることができますか? –
残念ながら、この追加情報はサーバーにはなく、要求ごとに送信されます。基本的に私は同じリソースを要求することができますが、別の理由で(私たちはそれをキャプチャする必要があります)。 – RailRhoad
クライアントとサーバーの両方が同じ企業ですか?あなたは解決しようとしている問題についてより多くの情報を提供できますか?恐ろしいと思われる解決策ではありません。どのようにしてサービスを呼び出す理由を適切に使用するようにしますか?クライアントとしてなぜ私はそれをしなければならないのですか?あなたは私の側に多くの負担をかけています。私はそのようなAPIを使用しないか、あなたが期待した理由を知らせません。働き過ぎ。あなたが問題についてのより多くの情報を提供すれば、より良いアプローチを提案することができます。 –