クライアントが公開会社を検索できる/companiesリソースがあり、クライアントがティッカー、場所、場所、および業界別に会社を検索できるようにしたいとします。
次の形式で同じURLを保持しますか?
- GET / Companies / msft
- GET / companys / usa
- GET / Companies / usa&software
これは正しくないようです。何か案は?
クライアントが公開会社を検索できる/companiesリソースがあり、クライアントがティッカー、場所、場所、および業界別に会社を検索できるようにしたいとします。
次の形式で同じURLを保持しますか?
これは正しくないようです。何か案は?
どうですか?
GET /Companies?ticker=MSFT
GET /Companies?country=USA
GET /Companies?country=USA&industry=software
重要なことは、リソースを識別することです。リソースは「会社のリスト」です。そのメディア タイプは、Atom リスト、または UL LI タグを使用した単なる HTML ドキュメントです。クエリ パラメータはリストの内容に影響を与えますが、概念的には「企業のリスト」のままです。
次のような個別のリソースを作成できます
GET /Companies/USA
しかし、本当に必要ですか。/Companies/USA に POST しますか? /Companies/USA を削除しますか? アプリケーションがこれらの特定の一連の企業に対して追加の操作を実行する機能を必要としない場合、それらを個別のリソースとしてモデル化する必要はありません。
この議論の補足として、単一のエンティティとリストであるリソースにアクセスしているときをより明確に区別したいと思います。すなわち
GET /Companies/USA
GET /Company/MSFT
これは、一部の一般的な Web フレームワークの動作方法とは異なることを認識していますが、便利な区別であることがわかりました。
これらのいずれかを受け入れることができますが、正規のアドレス(おそらく、GET / Companies / msft)を指すLocation:ヘッダーを返します。
会社は1つだけですが、それに到達する方法は複数あるので、おそらく/ Companies / [unique-name]を定義してから、/ Companies / byticker/msftや/companies/ bylocation/usaなどのさまざまなものを定義します。