21

REST API 和普通 API(打印 JSON 响应)有什么区别?

4

2 回答 2

16

完全没有区别。REST 描述了一种与 HTTP 服务器交互的方式,而不是服务器应返回的响应。大多数 Web 应用程序通过 POST 或 GET 请求与服务器端交互,其中包含满足 POST 表单提交或 GET 查询字符串中的请求所需的任何附加信息。因此,如果您想从服务器中删除某些内容,他们通常会使用包含指定资源的数据以及删除它的指令的表单进行 POST。

但是,HTTP 实现了 GET 或 POST 以外的方法(也称为动词)。除其他外,它还实现了 HEAD(返回与 GET 相同的标头,但没有响应正文)、PUT(获取请求正文并将其内容存储在发出 PUT 请求的任何 URL 中)和DELETE(删除指定 URL 中存在的任何资源)。REST 接口简单地利用这些附加动词将请求的含义传达给服务器。

浏览器通常只支持“正常”(非 XHR)请求的 GET 和 POST,但像 Curl 这样的工具可以发出全套 HTTP 动词。您还可以通过基于 XHR 的技术(例如 AJAX)使用附加动词。

您仍然需要为浏览器提供传统的非 REST API 以供使用,除非您使 javascript 和 XHR 支持成为使用您的应用程序的要求。

于 2012-05-15T07:32:01.763 回答
8

REST 主要是指按照预期的方式使用 HTTP 协议。使用GETURL 上的 HTTP 方法来检索信息,可能基于 HTTPAccept标头采用不同的格式。使用POSTHTTP 方法在服务器上创建新项目、PUT编辑现有项目、DELETE删除它们。使 API 具有幂等性,即使用相同的信息重复相同的查询应该产生相同的结果。以分层方式构建您的 URL 等。

REST 只是如何使用 URL 和 HTTP 协议来构建 API 的指导原则。它没有说明返回格式,也可能是 JSON。

这与将二进制或 XML 消息发送到指定端口的 API 完全相反,根本不使用 HTTP 方法或 URL 的差异。

于 2012-05-15T06:05:47.627 回答