「RPCのHTTP風正書法 - winplusの日記」を読んで、論旨とは無関係に気になった点があったので、例によってRoy T. Fieldingの意見を調べた。
- http://example.com/blog/entry123.html
- http://example.com/blog/entry123.json
上記の2つのURIは、それぞれ異なる2つのリソースを示す(参考1、参考2)。
- http://example.com/blog/entry123?type=html
- http://example.com/blog/entry123?type=json
上記の2つのURIも、それぞれ異なる2つのリソースを示す。ただし、望ましいクエリストリングの使い方とはいえない(参考3、参考4)。
- http://example.com/blog/entry123?type=edit
上記のURIも、もちろん異なるリソースを示す。ただしこれも、望ましいクエリストリングの使い方とはいえない。
というわけで、望ましいURIは下記のようなものだろう。
- HTML形式のブログ記事リソース
- http://example.com/blog/entry123.html
- JSON形式のブログ記事リソース
- http://example.com/blog/entry123.json
- ブログ記事編集画面リソース
- http://example.com/blog/entry123/edit
まとめ
- 2つのURIをGETするとして、それぞれに異なる応答が期待されるのなら、それらは異なるリソースを示す
- クエリストリングはクエリにのみ使うべし
Roy T. Fieldingはそう言っている。