RESTURLの設計に関連する質問があります。ここでいくつかの関連する投稿を見つけました:同じリソースのさまざまなRESTful表現とここ:さまざまなフィールドによるGETリソースへのRESTful URLですが、ベストプラクティスとその理由についての回答は明確ではありません。これが例です。
「ユーザー」リソースを表すためのRESTURLがあります。IDまたは電子メールアドレスを持つユーザーを取得できますが、URL表現は両方で同じままです。たくさんのブログや本を見てみると、人々はこれをさまざまな方法で行っていることがわかります。例えば
本とstackoverflowのどこかでこの練習を読んでください(私は再びリンクを見つけることができないようです)
GET /users/id={id}
GET /users/email={email}
多くのブログでこのプラクティスを読んでください
GET /users/{id}
GET /users/email/{email}
クエリパラメータは通常、URLで表されるリソースの結果をフィルタリングするために使用されますが、この方法も使用されているのを見てきました。
GET /users?id={id}
GET /users?email={email}
私の質問は、これらすべてのプラクティスの中で、APIを消費する開発者にとって最も理にかなっているのはどれですか。その理由は何ですか。RESTのURLデザインと命名規則に関しては、決まったルールはないと思いますが、開発者がAPIをよりよく理解できるようにするためにどのルートを取るべきかを知りたかっただけです。
すべての助けに感謝します!
私の経験でGET /users/{id} GET /users/email/{email}
は、これが最も一般的なアプローチです。また、提供されたid
またはでユーザーが存在しない場合、メソッドが404 NotFoundを返すことを期待しますemail
。私も驚かないでしょうGET /users/id/{id}
(私の意見では、それは冗長ですが)。
GET /users/id={id} GET /users/email={email}
GET /users?id={id} GET /users?email={email}
id
とemail
(例えばGET /users?id={id}&email={email}
)?そうでなければ、私はこのような単一のリソースメソッドを使用しません。id
、email
または一意の識別子が含まれることは期待していません。例:GET /users?status=BANNED
禁止されたユーザーのリストを返す場合があります。関連する質問からこの回答を確認してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加