【问题标题】:Difference between an Output of a normal API and a REST API普通 API 的输出和 REST API 的区别
【发布时间】:2012-05-22 14:53:18
【问题描述】:

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

【问题讨论】:

    标签: php api zend-framework rest


    【解决方案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 支持使用您的应用程序。

    【讨论】:

    • 您好,我想制作一个可供手机应用程序和网站使用的 API。执行 API(REST 或非 REST)的最佳方式是什么?
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 2021-01-08
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 2015-04-26
      相关资源
      最近更新 更多