Restful Api

简介

Resource Representational State Transfer(不知是啥)

特征

(1) 每一个uri代表一种资源;

(2) 客户端和服务器之间,传递这种资源的某种表现层;

(3) 客户端通过四个HTTP动词(GET、POST、DELETE、PUT),对服务器端资源进行操作,实现"表现层状态转化"(增删改查)。

(4) URL中通常不出现动词,只有名词

(5) 使用JSON不使用XML

设计方式

动词描述
HEAD(SELECT)只获取某个资源的头部信息
GET(SELECT)获取资源
POST(CREATE)创建资源
PATCH(UPDATE)更新资源的部分属性(很少用,一般用POST代替)
PUT(UPDATE)更新资源,客户端需要提供新建资源的所有属性
DELETE(DELETE)删除资源

使用方式

GET http://www.birjemin.com/api/user # 获取列表
POST http://www.birjemin.com/api/user # 创建用户
PUT http://www.birjemin.com/api/user/{id} # 修改用户信息
DELETE http://www.birjemin.com/api/user/{id} # 删除用户信息
复制代码

过滤信息

用于补充规范一些通用字段

?limit=10 # 指定返回记录的数量
?offset=10 # 指定返回记录的开始位置
?page=2&per_page=100 # 指定第几页,以及每页的记录数
?sortby=name&order=asc # 指定返回结果按照哪个属性排序,以及排序顺序
?state=close # 指定筛选条件
复制代码

状态码

字段名称为:code

状态码状态方式描述
200OK[GET]服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)
201CREATED[POST/PUT/PATCH]用户新建或修改数据成功
202ACCEPTED[*]表示一个请求已经进入后台排队(异步任务)
204NO CONTENT[DELETE]用户删除数据成功
400INVALID REQUEST[POST/PUT/PATCH]用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的
401UNAUTHORIZED[*]表示用户没有权限(令牌、用户名、密码错误)
403FORBIDDEN[*]表示用户得到授权(与401错误相对),但是访问是被禁止的
404NOT FOUND[*]用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的
406NOT ACCEPTABLE[GET]用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
410GONE[GET]用户请求的资源被永久删除,且不会再得到的
422UNPROCESABLE ENTITY[POST/PUT/PATCH]当创建一个对象时,发生一个验证错误
500INTERNAL SERVER ERROR[*]服务器发生错误,用户将无法判断发出的请求是否成功

错误信息

字段名称:message

示例

{
"code": 200,
"message": "啊哈哈",
"succ": true,
"data": []
}
复制代码

备注

为了简便,有时候code没有,或者为0,message换成msg,这些实际上实在实际项目中的,不过还是要有一个规范出来,这样方便统一管理。

参考

  1. www.cnblogs.com/imyalost/p/…
  2. www.ruanyifeng.com/blog/2014/0…

转载于:https://juejin.im/post/5a8e542ef265da4e896ade19

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值