什么是 RESTful API
RESTful API 是一组 Web 应用程序接口设计原则和约束,它们可以用于创建可管理、可维护和可扩展的 Web 服务。它是一种基于 REST(Representational State Transfer)架构的设计,RESTful API 的主要目标是使客户端和服务器之间的通信变得简单、可靠和可扩展。
设计原则
提供清晰的 API 文档
RESTful API 的设计就像一个产品一样,需要提供清晰易懂的 API 文档,让开发者能够快速上手。API 文档应该包括请求的 URL、请求的参数、请求方法、请求的响应状态码以及响应的数据格式等信息。
下面是一个简单的示例:
-- -------------------- ---- ------- --- ----------- -------- ------- ------- ------- ---------------- -------- --- -- ------------- ---------------- - ----- -- ------- ----- ------- ------ --- -------- ------------------------ -
使用 HTTP 动词表示操作
HTTP 动词是 RESTful API 设计中的关键概念,常用的 HTTP 动词包括 GET、POST、PUT、DELETE 等。使用 HTTP 动词可以明确表示客户端要执行的操作。
GET
用于获取资源,只是读取数据,不对数据做修改。
POST
用于创建资源,对资源进行修改操作。请求成功后,服务器会返回新资源的 URI。
PUT
用于更新资源,对资源进行修改操作,如果资源不存在会创建一个新的资源。请求成功后,服务器会返回修改后的资源。
DELETE
用于删除资源,请求成功后,服务器会返回响应状态码为 204。
统一资源定位符(URL)的设计
RESTful API 的 URL 要简单、清晰、易于理解。为了避免 URL 过于繁琐,可以使用资源嵌套的方式。
比如 /users/{id}/orders,可以得到某个用户的订单列表。
Http 状态码的使用
HTTP 状态码是 RESTful API 中非常重要的一部分,它表示服务器返回的请求处理结果。
常用的 HTTP 状态码包括:
- 200 OK:请求成功。
- 201 Created:资源创建成功。
- 204 No Content:请求成功,但响应中没有返回更多数据。
- 400 Bad Request:请求错误,参数错误等。
- 401 Unauthorized:未授权。
- 403 Forbidden:请求被拒绝。
- 404 Not Found:请求的资源不存在。
- 500 Internal Server Error:服务端错误。
根据资源设计 API
RESTful API 的设计重点在于资源,因此 API 应该基于资源的概念进行设计。
比如,/api/users 可以返回所有的用户列表,/api/users/{id} 可以返回指定 ID 的用户信息。同样地,/api/orders 可以返回所有的订单,/api/orders/{id} 可以返回指定 ID 的订单信息。
技巧
版本控制
RESTful API 的版本控制是非常重要的,因为版本迭代后可能会出现一些不兼容的 API,如果没有版本控制,那么每次更新都可能会影响到其他地方的程序。
版本控制一般使用 URL 或请求头的方式进行。
URL 方式:/api/v1/users
请求头方式:Accept: application/vnd.company.app-v1+json
数据格式
RESTful API 一般使用 JSON 或 XML 格式进行数据传输,其中 JSON 格式更加流行。
安全措施
RESTful API 有以下安全措施:
- HTTPS:使用 HTTPS 来保证数据加密传输。
- 访问控制:对需要授权的 API 进行访问控制,例如:OAuth 2.0。
- 接口限制:限制同一 IP 地址的请求次数,避免恶意攻击。
示例代码
下面是一个简单的 RESTful API 示例,使用 Node.js + Express 实现。
安装 Express
npm install express --save
创建 API
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ----- ----- - - - --- -- ----- ------ -- - --- -- ----- ----- -- - --- -- ----- ------- - - -- ------ --------------------- ----- ---- -- - --------------- -- -- ---- -- --- ------------------------- ----- ---- -- - ----- ---- - ------------ -- ---- --- ------------------------ -- ------ - -------------- - ---- - -------------------------- --- ------- - -- -- ----- ---------------------- ----- ---- -- - ----- ---- - - --- ------------ - -- ----- ------------- - ---------------- -------------- -- -- ---- -- --- ------------------------- ----- ---- -- - ----- ---- - ------------ -- ---- --- ------------------------ -- ------- - -------------------------- --- ------- ------ - --------- - ------------- -------------- -- -- ---- -- --- ---------------------------- ----- ---- -- - ----- ---- - ------------ -- ---- --- ------------------------ -- ------- - -------------------------- --- ------- ------ - ----- ----- - ------------------- ------------------- -- -------------- -- ----- ---- - ---------------- -- ---- ---------------- -- -- ---------------------- -- ---- -------------
使用 Postman 测试 API。
- GET /api/users
- GET /api/users/1
- POST /api/users
- PUT /api/users/1
- DELETE /api/users/1
总结
RESTful API 的设计原则和技巧不仅适用于前端开发工程师,也可以作为 各种 Web 应用程序的设计原则。通过 RESTful API,人们可以更好地管理和维护 Web 服务。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6481750a48841e98940eb57e