REST(REpresentational State Transfer),即“表现层状态转移”,最早出现在 Roy Thomas Fielding (参与设计了 HTTP 协议、Apache 服务器)的博士论文中(2000年)。
论文地址:Architectural Styles and the Design of Network-based Software Architectures
RESTful 是一种 API 的设计风格,其相比 SOAP 和 XML-RPC 更为简洁易用,现已经得到大范围应用。
1. REST and RESTful API
REST 描述的是在网络中 client 和 server 的一种交互形式,但 REST 本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口)。
2. RESTful API 的设计
2.1 资源 URI 的设计规则
URI 中只使用名词(一般是复数形式)来指定资源,原则上禁止使用动词。API 应部署到专有域名下,可以考虑加入 API 的版本。
API 应支持对于 {id}
单个资源的操作。
1https://api.test.com/v1/books # 一组资源
2https://api.test.com/v1/books/137 # 单个资源
3
4# 错误的例子
5https://api.test.com/v1/getBooks # API 中出现了动词
2.2 使用 HTTP 的请求方法表示 CRUD 操作
- GET:获取资源
- PUT:更新资源
- POST:新建资源
- DELETE:删除资源
值得注意的是,RESTful 并没有“正式”的标准,所以不同 Web 应用中,HTTP 动词代表的语义可能有所差异,但大致都是相似的。
2.3 表现形式 and 状态码
Server 和 Client 之间使用某种表现形式来传递资源,通常是 json
,也可以是其他形式。
通过 HTTP 的状态码,可以直观反映结果。
2.4 前后端分离
Web 端不必使用 PHP、JSP、ASP 架构,改为前端渲染、前端路由(Angular、React、Vue)。Web 端和 Server 只使用 RESTful API 来传递数据和改变数据状态。
3. 总结
- 从 URI 可直观清楚要操作的对象
- 从 HTTP 方法可直观理解要做的操作
- 从状态码可直观了解运行结果
参考链接
版权声明:本文遵循 CC BY-SA 4.0 版权协议,转载请附上原文出处链接和本声明。
Copyright statement: This article follows the CC BY-SA 4.0 copyright agreement. For reprinting, please attach the original source link and this statement.