リソースを検索するためのRESTful URL設計に関しては、coupleのquestionsがありました。私が興味を持っているのは、リソースID以外のものによって単一のリソースのRESTful URLです。単一のリソースを検索するためのRESTful URL設計
例えば、ユーザーはIDとリソースURL /rest/user/<id>
を持っています。私は自分の電子メールアドレス(システムによって一意であることが保証されている)で単一のユーザーを検索できるようにしたい。私が作ってみた
代替:
A)/rest/user/email/[email protected]
- /rest/user/email
は未定義されるだろうが)(個々のリソースにアクセスするための別のリソースを作成
B)/rest/user/email:[email protected]
- ここemail:[email protected]
を考えますユーザのための代替的な識別子は、従ってこれは
C)/rest/[email protected]
別のIDを使用して、同じリソースのエンドポイントである - これはRESTfulな検索であるが、それはreturなりますゼロまたは1つのエントリを含むnアレイ、したがってリソースへの直接参照しないで
D)/rest/user/[email protected]
- (Cと同様の検索API)が、異なる意味を有する
設計はで検索に拡張可能であるべきですシステムによって提供される異なる固有のID(外部ID、電話番号、SSNなど)。
特定のユーザー(サービスでグローバルに使用される可能性があります)を参照する別の方法を定義し、既存のリソースエンドポイントを再利用するため、オプションBに傾いています。これをPUTとDELETE、GETに拡張することができます。しかし、それは非常にRESTfulですか?
[REST API DESIGN - 異なるパラメータでも同じURLパターンでリソースを取得する]の可能な複製(http://stackoverflow.com/questions/20381976/rest-api-design-getting-a-resource-through) -rest-with-different-parameters-しかし、 – vtortola