Skip to main content
  1. 闲来无事 温雪煮茶/

restful

·2 mins·
Table of Contents

RESTFull API
#

API
#

全称 应用程序接口 主要为前端或者后端其他服务提供API比如查询用户数据。

REST
#

REST 是表述性状态转移 (REpresentational State Transfer) 的缩写,是一种分布式超媒体系统的架构风格。从那时起,它就成为构建基于 Web 的 API(应用程序编程接口)最广泛使用的方法之一。

REST

  • 不是

    一种协议或一种标准

  • 而是

    一种架构风格。在开发阶段,API 开发人员可以通过多种方式实现 REST。

img

约束:

  • 资源识别 ——接口必须唯一地标识客户端和服务器交互中涉及的每个资源。
  • 通过表述操纵资源 – 资源在服务器响应中应具有统一的表述。API 使用者应使用这些表述来修改服务器中的资源状态。
  • 自描述消息 – 每个资源表示都应包含足够的信息来描述如何处理消息。它还应提供客户端可对资源执行的其他操作的信息。
  • 超媒体作为应用程序状态的引擎 – 客户端应该只拥有应用程序的初始 URI。客户端应用程序应该使用超链接动态驱动所有其他资源和交互。

img

资源
#

REST 中信息的关键 抽象 是 资源。任何我们可以命名的信息都可以是资源。例如,REST 资源可以是文档或图像、时间服务、其他资源的集合或非虚拟对象(例如,人)。

在任何特定时间,资源的状态称为 资源表示。资源表示包括:

  • 数据
  • 描述数据的数据
  • 以及可以帮助客户端过渡到下一个期望状态的超媒体链接。

资源方法
#

资源方法用于执行任何资源的两种状态之间所需的转换。

总结

简单来说,在 REST 架构风格中,数据和功能被视为资源,并使用 统一资源标识符 (URI) 进行访问。

通过使用一组简单、定义明确的操作来对资源进行操作。此外,资源必须与其表示分离,以便客户端可以访问各种格式的内容,例如 HTML、XML、纯文本、PDF、JPEG、JSON 等。

客户端和服务器使用标准化接口和协议交换资源表示。通常,HTTP 是最常用的协议,但 REST 并不强制要求使用 HTTP。

有关资源的元数据可用并用于控制缓存、检测传输错误、协商适当的表示格式以及执行身份验证或访问控制。

最重要的是,与服务器的每次交互都必须是无状态的。

Sianao
Author
Sianao
a backend developer

Related

About me
·1 min
binlog
·3 mins
Mysql
golang
·8 mins
Golang
k3s
·2 mins
systemd
·4 mins