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はそう言っている。