一种软件设计风格, 全称为 Representational State Transfer
,直译为表现层状态转移
,可以解释为用 URL 定位资源,用 HTTP 动词描述操作
.
目前实现的最好的是github API
HTTPS
非 HTTPS 的 API 调用,不要重定向到 HTTPS,而要直接返回调用错误以禁止不安全的调用;
域名
将API与其主域名区分开;
将版本号直接加入 URL 中, 如: https://api.larabbs.com/v1
使用 HTTP 请求头的 Accept 字段进行区分,如:
https://api.larabbs.com/
Accept: application/prs.larabbs.v1+json
Accept: application/prs.larabbs.v2+json
幂等性
-指的是一次或者多次请求一个资源应该具有同样的副作用, 也就是一次或多次访问, 对这个资源带来的变化是相同的;常用的动词及幂等性
动词 | 描述 | 是否幂等 |
---|---|---|
GET | 获取资源,单个或者多个 | 是 |
POST | 创建资源 | 否 |
PUT | 更新资源,客户端提供完整的资源数据 | 是 |
PATH | 更新资源,客户端提供完整的资源数据 | 否 |
DELETE | 删除资源 | 是 |
为什么 PUT 是幂等的而 PATCH 是非幂等的,因为 PUT 是根据客户端提供了完整的资源数据,
客户端提交什么就替换为什么,而 PATCH 有可能是根据客户端提供的参数,动态的计算出某个值,
例如每次请求后资源的某个参数减1,所以多次调用,资源会有不同的变化。
本文为Larwas原创文章,转载无需和我联系,但请注明来自larwas博客 https://larwas.com
最新评论