【问题标题】:Is my API a RESTful API?我的 API 是 RESTful API 吗?
【发布时间】:2015-02-14 17:50:03
【问题描述】:

我一直在使用 Phalcon 开发我的网络系统,并在其中添加了一个 API,可以通过该 API 发送订单和请求库存编号。

我是 Web 服务的新手,所以只是徘徊,我的 API 是 RESTful API 吗?

  • 所有请求都通过http://myurl.com/api
  • 所有请求都必须在请求的标头中放置一个“API-Key”,用于进行身份验证。
  • 如果他们想下载股票编号,他们发送“GET”到http://myurl.com/api/stock
  • 如果他们想通过它发送订单,则向http://myurl.com/api/order 发送一个“POST”,其中包含一个包含订单详细信息的 json_encoded 数组的“data”参数。

返回的数据通常是 200 状态码,有成功或失败(返回 401 的无效 API 密钥除外)。

【问题讨论】:

标签: api rest


【解决方案1】:

您可以自己回答这个问题。也许您的 API 是 RESTful API。
但在此之前您需要了解一些事情...

  1. 什么是 RESTful 服务/编程..?
    我有一个很好的和中肯的 Answer 相同的

    这里总结了一些要点......
    • 如今,URI 是标识符的普遍选择。让 URI 识别您想要公开的每个资源和服务。
    • 使用了 HTTP 方法。 Create, Retrieve, Update & Delete 分别由 HTTP POST, GET, PUT & DELETE 方法处理。
    • 使用以下适当的 HTTP 响应代码返回结果

  1. 您的 API 是否同时提供 JSON 和 XML

    除非您处于需要 XML、Schema 验证和命名空间的高度标准化和受监管的行业,否则请支持 JSON。并同时提供 JSON 和 XML,除非成本高得惊人。理想情况下,让消费者在使用 HTTP Accept 标头之间切换,或者只是将 URL 上的扩展名从 .xml 更改为 .json。

    但请注意,一旦我们开始讨论 XML 支持,我们就会开始讨论用于验证、名称空间等的模式。除非您的行业要求,否则请避免最初支持所有这些复杂性,如果有的话。 JSON 被设计为简单、简洁和实用。如果可以,请创建您的 XML 以使其看起来像这样。

    换句话说,使返回的 XML 更像 JSON:简单易读,不存在架构和命名空间详细信息——只有数据和链接。如果它最终变得比这更复杂,那么 XML 的成本将是惊人的。根据我的经验,在过去的几年中,无论如何都没有人使用 XML 响应。消费太贵了。

    read more on How a RESTful API should be

  2. 也请阅读此answer 的宝贵信息。这真的很有帮助。 (如果您想了解更多详细信息,也可以阅读答案)


现在,我认为您可以自行决定您的 API 是否为 RESTful API

【讨论】:

    【解决方案2】:

    您的服务是否符合 HTTP 和 URI 标准?它是否提供标准的超媒体格式?您的客户是否遵循服务提供的超链接,而不是自己构建遵循的 URI 和方法?超链接和响应数据是否带有元数据注释,客户端可以使用这些元数据来了解响应的含义以及如何处理它?您的客户是否会在每个请求中发送必要的信息来识别客户?这些请求在服务器完全重启后会起作用吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 2012-03-01
      • 2013-01-23
      • 2012-09-04
      • 1970-01-01
      • 2016-04-16
      • 2020-03-22
      相关资源
      最近更新 更多