1. ホーム
  2. rest

REST Resource urlのクエリ文字列

2023-10-02 03:56:02

質問内容

今日、REST URL でクエリ文字列を使用することについて、同僚と議論しました。これらの 2 つの例を見てみましょう。

1. http://localhost/findbyproductcode/4xxheua
2. http://localhost/findbyproductcode?productcode=4xxheua

私のスタンスは、URLは例1のように設計することでした。この方がすっきりしているし、RESTの中では正しいと思うからです。私の考えでは、製品コードが存在しない場合に例 1 から 404 エラーを返すのは完全に正しいのですが、例 2 ではページが存在するはずなので 404 を返すのは間違っています。彼のスタンスは、それは本当に重要ではなく、どちらも同じことを行うということでした。

私たちはどちらも具体的な証拠を見つけることができなかったので (確かに私の検索は広範囲ではありませんでした)、これに関する他の人々の意見を知りたいと思います。

どのように解決するのですか?

一般的なREST APIでは、例1がより正しいです。リソースはURIで表現され、#1の方がより適切です。 製品コードが見つからないときに404を返すのは、絶対に正しい動作です。 とはいえ、私なら#1を少し修正して、このようにもう少し表現力を高めると思います。

http://localhost/products/code/4xheaua

他のよく設計されたREST APIを見てみましょう - 例えばStackOverflowを見てみましょう。ありますね。

stackoverflow.com/questions
stackoverflow.com/questions/tagged/rest
stackoverflow.com/questions/3821663

これらはすべて、"questions"を得るための異なる方法です。