什么是 RESTful API?

举报
宇宙之一粟 发表于 2022/07/30 18:33:04 2022/07/30
【摘要】 RESTful API 是两个计算机系统用于通过互联网安全地交换信息的接口。大多数业务应用程序必须与其他内部和第三方应用程序进行通信才能执行各种任务。例如,为了生成月度工资单,您的内部账户系统必须与客户的银行系统共享数据才能自动开具发票并与内部工时单应用程序进行通信。RESTful API 支持此类信息交换,因为它们遵循安全、可靠和高效的软件通信标准。什么是 API?应用程序编程接口(API...

RESTful API 是两个计算机系统用于通过互联网安全地交换信息的接口。大多数业务应用程序必须与其他内部和第三方应用程序进行通信才能执行各种任务。

例如,为了生成月度工资单,您的内部账户系统必须与客户的银行系统共享数据才能自动开具发票并与内部工时单应用程序进行通信。

RESTful API 支持此类信息交换,因为它们遵循安全、可靠和高效的软件通信标准。

什么是 API?

应用程序编程接口(API)定义您与其他软件系统进行通信必须遵循的规则。开发人员公开或创建 API,以便他们的应用程序可以以编程方式与其他应用程序进行通信。例如,工时单应用程序公开一个要求提供员工全名和日期范围的 API。当其收到此信息时,其会对员工的工时单进行内部处理,并返回该日期范围内的工作小时数。

您可以将 Web API 想象为客户端和 Web 上资源之间的大门。

客户端

客户端是要访问 Web 上信息的用户。客户端可以是使用 API 的个人或软件系统。例如,开发人员可以编写从天气系统访问天气数据的程序。或者,您可以在浏览器上直接访问天气网站访问相同的数据。

资源

资源是不同的应用程序向其客户端提供的信息。资源可以是图像、视频、文本、数字或任何类型的数据。向客户端提供资源的设备也称为服务器。企业使用 API 分享资源,既能提供 Web 服务,还能确保安全、可控,身份验证。此外,API 帮助企业确定哪些客户端可以访问特定的内部资源。

什么是 REST?

表征状态传输 (REST) 是一种软件架构,决定了 API 的工作条件。REST 最初作为管理复杂网络(例如互联网)上的通信的指南而建立。您可以使用基于 REST 的架构为高性能和可靠的大规模通信提供支持。您可以轻松应用和修改此种架构,为任何 API 系统带来可见性和跨平台可能性。

API 开发人员可以使用多种不同的架构设计 API。遵循 REST 架构风格的 API 称为 REST API。实施 REST 架构的 Web 服务称为 RESTful Web 服务。术语 RESTful API 通常指 RESTful Web API。但是,术语 REST API 和 RESTful API 可以互换使用。

以下是 REST 架构风格的一些原则:

统一接口

统一接口是一切 RESTful Web 服务设计的基础。其表示服务器以标准格式传输信息。格式化的资源在 REST 中称为表征。此格式可以与服务器应用程序上资源的内部表征不同。例如,服务器可以将数据存储为文本,但以 HTML 表征格式发送该数据。

统一接口强制实施四个架构约束:

  1. 请求应确定资源。它们通过使用统一的资源标识符实现此功能。
  2. 客户端包含资源表征中的足够信息以修改或删除资源(如需要)。服务器通过发送进一步描述资源的元数据以符合这一条件。
  3. 客户端接收有关如何进一步处理表征的信息。服务器通过发送自描述信息实现此功能,该信息包含了有关客户端如何以最佳方式使用这些信息的元数据。
  4. 客户端接收有关其完成任务需要的所有其他相关资源的信息。服务器通过在表征中发送超链接实现此功能,以便客户端可以动态发现更多资源。

无状态

在 REST 架构中,无状态指一种服务器独立于所有之前的请求完成每个客户端请求的通信方法。客户端可以以任意顺序请求资源,每个请求为无状态或与独立于其他请求。此 REST API 设计约束意味着服务器每次可以完全识别和满足请求。 

Rest 动词

REST 动词指定要对特定资源或资源集合执行的操作。当客户端发出请求时,它应该在 HTTP 请求中发送以下信息:

  • REST 动词
  • 头信息
  • 主体(可选)

REST 使用 URI 来解码其要处理的资源。有很多可用的 REST 动词,但其中有六个是经常使用的。它们如下:

  • GET​:客户端使用 GET 访问位于服务器上指定 URL 上的资源。它们可以缓存 GET 请求,并在 RESTful API 请求中发送参数以指示服务器在发送之前筛选数据。
  • POST​:客户端使用 POST 向服务器发送数据。它们将数据表征包含到了请求中。多次发送相同的 POST 请求会造成多次创建相同资源的不良影响。
  • PUT​:客户端使用 PUT 更新服务器上的现有资源。与 POST 不同,在 RESTful Web 服务中多次发送相同的 PUT 请求具有相同的效果。
  • PATCH​:用于修改资源属性的值。可用于更新部分资源。例如,当您只需要更新资源的一个字段时,放置完整的资源表示可能会很麻烦,并使用更多的带宽
  • DELETE​:客户端使用 DELETE 请求删除资源。DELETE 请求可以更改服务器状态。但是,如果用户没有合适的身份验证,则请求失败。
  • OPTIONS​:是方法级别的注释,此注释表明以下方法将仅响应HTTP选项请求。它用于请求,以获取有关可用于资源的通信选项的信息。

Sr.No.

URI

HTTP Method

POST body

Result

1

/UserService/users

GET

empty

Show list of all the users.

2

/UserService/addUser

POST

JSON String

Add details of new user.

3

/UserService/getUser/:id

GET

empty

Show details of a user.

URL,唯一的资源标识符

服务器通过唯一的资源标识符识别每个资源。对于 REST 服务,服务器通常使用统一资源定位符 (URL) 执行资源识别。URL 指定资源的路径。URL 类似于您访问任何网页时在浏览器中输入的网站地址。URL 也称为请求端点,并向服务器清晰指明客户端请求的内容。

HTTP 头

请求头是客户端和服务器之间交换的元数据。例如,请求头表示请求和响应的格式,提供有关请求状态的信息等等。

数据

REST API 请求可能包含 POST、PUT 和其他 HTTP 方法成功运行所需的数据。

参数

RESTful API 请求可以包含参数,这些参数向服务器提供更多有关需采取行动的详细信息。以下为一些不同类型的参数:

  • 指定 URL 详细信息的路径参数。
  • 请求有关资源的更多信息的查询参数。
  • 对客户端进行快速身份验证的 Cookie 参数。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。