• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

什么是 REST

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

一、什么是 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 设计约束意味着服务器每次可以完全识别和满足请求。 

层次化系统

在层次化系统架构中,客户端可以连接到客户端和服务器之间的其他授权中间方,其仍将接收来自服务器的响应。服务器也可以将请求传递到其他服务器。您可以将 RESTful Web 服务设计为在包含多个层级(例如安全、应用程序和业务逻辑)的数个服务器上运行,从而共同满足客户端请求。这些层级对客户端仍不可见。

高速缓存能力

RESTful Web 服务支持缓存,缓存是指将一些响应存储在客户端或中间方上以提高服务器响应时间的流程。例如,假设您访问某个网站,该网站的每个页面都包含通用的页眉和页脚图像。每次您访问新的网站页面时,服务器必须重新发送相同的图像。为了避免出现这种情况,客户端在首次响应后会缓存或存储这些图像,之后直接使用缓存中的图像。RESTful Web 服务通过使用自行定义为可缓存或不可缓存的 API 响应来控制缓存。

按需编码

在 REST 架构风格中,服务器可以通过将软件编程代码传输到客户端暂时扩展或自定义客户端功能。例如,当您在任何网站上填写注册表单时,浏览器会立即高亮您填写内容的任何错误,例如不正确的电话号码。正是由于服务器发送的代码,浏览器才可以实现这个功能。

一站式研发项目管理平台 PingCode

一站式研发项目管理平台 PingCode

支持敏捷\瀑布、知识库、迭代计划&跟踪、需求、缺陷、测试管理,同时满足非研发团队的流程规划、项目管理和在线办公需要。

相关文章