REST API中使用的适当用例是什么?参数问号?

时间:2015-05-19 14:56:42

标签: api rest structure

this REST教程网站上

如果有的话,是否适合放置像

这样的东西
http://dev.m.gatech.edu/developer/USER_NAME/api/WIDGET_NAME/test?query=someparam

而不是

http://dev.m.gatech.edu/developer/USER_NAME/api/WIDGET_NAME/test/someparam

http://dev.m.gatech.edu/developer/USER_NAME/api/WIDGET_NAME/test/someparam/var1/param/var2/param

我在SO上看过各种各样的事情。

1 个答案:

答案 0 :(得分:3)

您执行GET请求并需要传递某些参数的所有情况都应采用?param = value。

的形式。
  

首先是第一个链接,他们错了吗?男人,这些天你能相信吗:)。

不,他们没有错。从该网站获取此示例

GET http://www.example.com/customers/33245/orders

此处,customers33245orders不是查询参数,它们是资源端点,或者是 uri节点,因为它们在您的restapitutorial上调用它们。 COM

如果你这样做

GET http://www.example.com/customers您获得了所有客户 GET http://www.example.com/customers/33245您获得了客户33245
GET http://www.example.com/customers/33245/orders您获得客户33245的订单

它们都返回0或更多资源。如果您要将查询应用于例如第一个,并且您希望以 John 作为名字获取所有客户,那么您将执行此操作

GET http://www.example.com/customers?firstname=John

在您问题的最后一个示例中,它将被写为GET http://www.example.com/customers/firstname/john,而在宁静方面则为错误。没有客户资源'firstname',并且没有名字资源'john'。

有些客户的名字是'john',你会用

来获取它们
GET http://www.example.com/customers?firstname=John