より複雑なSOAPベースのサービスのフロントエンドであるREST APIがあります。 soapベースのサービスは、ルーティングを実行するために拡張(カスタム)WSAアドレス指定ヘッダーを使用します。 WSA-Addressingの拡張により、たとえば、国と都市の2つのヘッダーパラメータが追加されます。ルーティング要素は必須なので、何らかの形でREST APIに渡し、SOAPクライアントでそれらを使用してルーティングを正しく行う必要があります。 REST APIに関して2つのオプションがあります。
それらは私のGETは次のようになります:
getResource/country/city/123456
ヘッダーを使用すると、次のようになります。
getResourfce/123456
IDのみがリソースを一意に識別するため、国と都市はルーティング専用であることに注意してください。
SOAPを使用している場合、HEADERを使用することは間違いありません。ルーティングに関してRESTを使用する場合の状況はどうですか。
このパラメータを表現する適切な方法は何ですか?ヘッダーまたはパス要素?
IDのみがリソースを一意に識別するため、国と都市はルーティング専用であることに注意してください。
基になるSOAPサービスがリソースを見つけるためにそれらを必要とし、IDだけがリソースを識別できない場合、それらはリソースを識別するために必要な事実。
リソース間で共有されないIDを持つことは、ID自体がリソースを一意に識別できることと同じではありません。
たとえ /Canada/Toronto/12345
および/Ireland/Dublin/12345
はIDが共有されていないため発生しません。正しいリソースを取得するには、この国と都市の情報が必要です。
だから私はそれらをURLに入れます。
ヘッダーに入れないでください。この情報は、HTTPトランスポートレベルとは関係ありません。
結局のところ、どちらを選択するかはあなた次第です。
最初はヘッダーアプローチが好きではありませんでしたが、RESTfulサービスでのヘッダーの使用例を2つ見つけて、それを賢く見せました。
Authorization:
ヘッダーは、フィールドの異なる可視性など、リソースへのアクセス権を制御するために使用されます。Accept:
ヘッダーを使用して、リソースの表示を選択できます。つまり、同じリソースをJSON、XML、またはHTMLデータとして表示できます。ただし、特定の1つの国/都市の組み合わせでのみ各リソースにアクセスでき、クライアントがそのことを知る必要がある場合usa/new_york
は11112222に必要ですが、spain/madrid
11112233の場合、これらはパスに入る必要があります。ヘッダー値はURIの一部ではなく、特定のリソースのリクエストで渡される必要がある国と都市を覚えたり見つけたりすることは、クライアントの責任ではありません。