問題
サービスへのRESTfulなアプローチでSOAを構築しています。システムが本番環境に入ると、内部およびサードパーティ システムを含む多くのクライアントがインターフェイスを使用することになります。
次のようなクライアント アプリケーションによって提供される応答情報を消費してエコーできるようにしたいと考えています。
- セッション ID - Java EE セッション ID またはクライアント固有のものである可能性があります。これは、サポート チームやクライアントの問題をデバッグして、すべてのシステムを通じて問題を追跡するのに役立ちます。
- トランザクション ID - クライアントがサービスを非同期的に呼び出す場合、または 202 Accepted スタイルの長時間実行プロセスを実装する場合に、クライアントが要求/応答の関連付けを支援するためにクライアントにエコー バックできる要求の一意の識別子。
考えられる解決策
したがって、RESTful な制約に固執すると、HTTP を使用してこれを実装する必要があることが示唆され、実装できるオプションがいくつかあります。
- pragma header - transaction-id、session-id などの拡張プラグマを実装します。これは、標準の HTTP ヘッダーを使用するため、ソリューションの純粋主義者のように思えますが、私たちが気にすることができないすべてのもののゴミ捨て場になることを懸念しています。適当に考えます。
- X-My-Header - 必要な各フィールドのカスタム ヘッダー。コアHTTPではなく、プロキシによって削除される可能性があるため、アンチレストを感じます
- クエリ文字列または XML/JSON 表現 - すべてのリソースにフィールドを追加します。これは操作パラメーターであるため、リソースではなくメタデータとして提供する必要があるように感じます。
- Cookie - Cookie と Set-Cookie を使用して、カスタム キー値を保持します。ほとんどの実装ではすでに Cookie が使用されているため、セッション ID の場合に役立ちます。クライアント側の相関関係をサポートするために毎回再送信する必要があり、これは Cookie を使用するポイントを無効にします。
答え
これには前例がありますか?私たちは怒っていますか?私のすべての研究で欠けている明らかなものはありますか?サービスが展開されたら、サービスをどのようにサポートするかを実際に気にする人はいませんか? 黙って立ち去るべきですか?
誰かが助けてくれることを願っています。
PSこれがエッセイのビットである場合は申し訳ありませんが、アドバイスは「具体的に」と言っていました....