普通 API 的输出与 REST API 的输出之间的差异

2022-08-30 20:03:14

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


答案 1

根本没有区别。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 支持作为使用应用的要求。


答案 2

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

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

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


推荐