如何为POST端点创建链接关系?

时间:2011-12-05 15:30:52

标签: rest hyperlink hateoas

在构建我的Web服务的RESTful API时,我试图给客户端link relations,例如(这是GET入口点返回的内容):

<doc>
 <links>
  <link rel="self" href="/home"/>
  <link rel="post" href="/post-new-article"/>
 </links>
</doc>

我希望客户明白,为了发布新文章,他必须向/post-new-article提交POST请求,"text"作为查询参数。

但是我没有在文档中说"POST",我没有告诉他我期待的HTTP查询参数。我应该如何以及在何处提供此信息?关于它有任何事实上的标准/惯例吗?

1 个答案:

答案 0 :(得分:2)

技术上正确的答案是它由文档的媒体类型定义。例如,假设API提供HTML。客户端是浏览器。

按照惯例,当用户代理(浏览器)访问资源(由锚标记标识)时,它会向服务API的服务器发出HTTP GET。假设一切按计划进行,服务器返回该资源的另一个HTML表示。

同样,当用户代理提交表单时,默认情况下会发出HTTP GET,除非method标记的form属性指示它应该POST数据。 (详情here。)

您的API文档应详细说明REST服务使用的媒体类型。如果它是自定义类型,则规范应包括以下链接的规则。如果您的API通过HTTP运行,那么规则将指定GETPOSTDELETE等,以及任何其他要求/约定。

罗伊本人:http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven