RESTful API 是一种广泛应用于互联网的 API 设计规范。它通过 HTTP 协议提供资源的标准接口,强调标准化、简洁、可扩展和面向资源的设计理念,成为越来越多 Web 开发者的首选。
本文将详细介绍 RESTful API 的构建块,包括资源、URI、HTTP 方法、状态码和表示。我们还提供代码示例和学习指导,以指导您如何构建高质量的 RESTful API。
资源
RESTful API 的核心是资源,也称为信息实体。资源是 API 中最基本的概念,它可以是任何东西,如用户、文章、订单、商品等等。资源可以用一个 URI 进行唯一定位,并通过 HTTP 协议进行交互。
如下是一个资源的 URI 的示例:
https://example.com/users/123
其中,https://example.com
是 API 的主机地址,users
是资源的名称,123
是资源的唯一标识符。需要注意的是,RESTful API 中,URI 应该只标识资源本身,而不是其具体行为。
URI
URI(Unified Resource Identifier) 是资源的唯一标识符。它通过 HTTP 请求,将客户端与服务器之间的操作与数据传输进行显式定义。URI的标准格式:scheme://host/resource_path,它包括以下几种格式:
URI = scheme:[//authority]path[?query][#fragment]
- scheme:协议名称, 浏览器默认使用http协议,因此http协议可以省略不写。
- authority:请求资源的域名和端口号,格式为 host:port ,可以省略。
- resource_path:资源的具体路径,以名称表示。
- query:请求参数,格式为 key=value,多个参数之间用 & 符号连接。
- fragment:锚点,表示定位到资源的具体部分,比如网页中定位到某个标题或者评论。
HTTP方法
RESTful API 使用 HTTP 协议进行通信,因此 HTTP 方法是 RESTful API 的重要构建块之一。HTTP 定义了多种方法,包括 GET、POST、PUT、DELETE 等,对应着不同的资源操作。RESTful API 通过使用 HTTP 方法定义资源操作,实现了 URI 只作为资源定位符的目的。
下表列出了 RESTful API 常用的 HTTP 方法和它们的行为:
HTTP 方法 | 行为 |
---|---|
GET | 获取指定资源的表示 |
POST | 创建新的资源 |
PUT | 更新指定资源 |
DELETE | 删除指定资源 |
HEAD | 获取指定资源的头信息 |
OPTIONS | 获取指定资源所支持的方法列表 |
状态码
RESTful API 使用 HTTP 状态码表示资源操作的结果。状态码反映了服务器是否成功处理请求及其原因。在 RESTful API 设计中,状态码是非常重要的部分,因为它们帮助客户端了解操作的状态,并采取相应的行动。
下表列出了 HTTP 状态码及其对应的含义:
HTTP 状态码 | 含义 |
---|---|
200 OK | 请求成功 |
201 Created | 创建成功 |
204 No Content | 无返回内容 |
400 Bad Request | 请求错误 |
401 Unauthorized | 未经授权 |
403 Forbidden | 操作被禁止 |
404 Not Found | 资源不存在 |
409 Conflict | 资源冲突 |
500 Internal Server Error | 服务器错误 |
表示
RESTful API 的另一个关键构建块是表示。表示是指将资源的状态转换为客户端或服务器可以处理的格式,如 JSON 或 XML 等。
JSON 是 RESTful API 最常用的表示形式之一,因为它是轻量级的、易于阅读和解析的,而且几乎所有现代编程语言都支持 JSON。
如下是一个返回 JSON 表示的用户资源示例:
HTTP/1.1 200 OK Content-Type: application/json { "id": "123", "name": "Tom", "email": "tom@example.com" }
示例代码
下面是一个使用 Node.js 和 Express 框架构建的基本 RESTful API 示例代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- -- ------- ----------------- ----- ---- -- - -- --------- --- ------------------ ----- ---- -- - -- -------- --- ------------------------- ----- ---- -- - -- --------- --- ------------------------- ----- ---- -- - -- --------- --- ---------------------------- ----- ---- -- - -- --------- --- -- ---- ---------------- -- -- - ------------------- ------- -- ---- ------- ---
上述代码定义了 5 个路由,每个路由对应一种 HTTP 方法。其中 /users
是用户资源的路径,:userId
是用户资源的标识符。
总结
本文详细介绍了 RESTful API 的构建块,包括资源、URI、HTTP 方法、状态码和表示。我们还提供了代码示例和学习指导,以帮助您设计和实现高质量的 RESTful API。通过深度学习和实践,您可以更好地理解 RESTful API,更好地设计和实现面向资源的 Web API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647248fa968c7c53b0016706