我正在为Google AppEngine编写一个RESTful Web服务。 webservice基于条形码和格式提供产品的Java序列化对象表示。我想知道RESTful设计在以下选项中首选哪种设计方法(如果有的话):
选项 - 1:
/product?barcode=1234&format=ean_13
选项 - 2:
/product/1234?format=ean_13
选项 - 3:
/product/ean_13/1234
我在SO上发现了很多关于REST的引用,但没有解决使用查询参数来识别表示的问题。
我自己的理解是它不应该有所作为,因为服务器在所有三种情况下都是无状态的,但我不确定。
答案 0 :(得分:3)
它对REST没有任何影响,只有三种不同的标识符。
从实际的HTTP角度来看,有许多部署的中间缓存不会缓存具有查询参数的表示。因此,如果想在公共缓存中缓存这些表示,那么选项3可能更好。