2

例如,在构建我的 Web 服务的 RESTful API 时,我试图为客户端提供链接关系(这是 GET 入口点返回的内容):

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

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

但是我没有"POST"在文档中说什么,也没有告诉他我期待的是哪个 HTTP 查询参数。我应该如何以及在哪里提供这些信息?是否有任何事实上的标准/约定?

4

1 回答 1

3

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

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

同样,当用户代理提交表单时,它默认发出 HTTP GET,除非标签的method属性form表明它应该POST发送数据。(这里有详细信息。)

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

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

于 2011-12-23T19:47:46.647 回答