Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RESTAPI:如何命名派生资源?_Api_Rest - Fatal编程技术网

RESTAPI:如何命名派生资源?

RESTAPI:如何命名派生资源?,api,rest,Api,Rest,有无数关于RESTful接口命名约定的问题,特别是关于单复数资源名的问题。有一个惯例是: GET /users Retrieve collection of users GET /users/{id} Retrieve user POST /users Create user PUT /users/{id} Update user DELETE /users/{id} Delete user 但是,当资源是从环境派生的值时,上述方法不起作用 我假设的应用程序具有以下端点: GET /sourc

有无数关于RESTful接口命名约定的问题,特别是关于单复数资源名的问题。有一个惯例是:

GET /users Retrieve collection of users
GET /users/{id} Retrieve user
POST /users Create user
PUT /users/{id} Update user
DELETE /users/{id} Delete user
但是,当资源是从环境派生的值时,上述方法不起作用

我假设的应用程序具有以下端点:

GET /source Get information about the source of the query.
对此的回应是:

  • 推荐人网址
  • 远程IP
由于
source
是从环境中派生的,因此从来没有多个源,因此调用资源
sources
或提供
sources/{foo}
查找是不实际的


REST风格是否提出了如何处理这些实体的命名问题?

菲尔丁博士在其著名著作《自然》第6.2.1节中指出:

…作者需要一个与他们的语义紧密匹配的标识符 通过超媒体引用意愿,允许引用保留 静态,即使访问该引用的结果可能会更改 随着时间的推移

因此,使用普通的
端点是有意义的


如果您希望围绕所提供的IP地址提供更全面的服务,这将是另一回事,例如。

进一步考虑,我将在资源名称中添加一个后缀“me”,例如,这允许将来的设计,以防“customer”端点允许其他客户的信息。如果这是您的目标,我建议保留该API点的复数名称,并立即通过/cusotmers/:id向任何客户提供简单的访问,这在某些时候肯定是需要的。自发布该API点以来,该决定已更改了很多次。。。我会写一篇博客文章,当我完成这个。