Rest风格初解

0.命名方式

在rest风格中,每一个操作对象都是一个 "资源",所以在命名我们的接口时,使用的都是名词 而不是动词。在使用时尽量避免出现get /delete/ find等词语 例如:
错误: GET /getFriendById?id = 1
正确 : GET /friends/1


1.客户端和服务器的约定

1.1 在客户端和服务端,双方都要知道通讯的格式,格式在HTTP-Header中指定
Content-Type 定义请求格式
Accept 定义系列可接受的响应格式
1.2以restEasy为例子:在服务器端可以指定注解
@Consumer和content-type对应
---- 表明匹配客户端此次请求的数据格式。
@Producs和accept对应。
------ 表明匹配客户端期待服务器返回的数据格式。

2.对简单资源的 crud(增删改查)

HTTP Method 与 CURD 数据处理操作对应
四个表示操作方式的动词:GET、POST、PUT、DELETE。 
它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
例子: 对user的crud
POST /user?name=xxx....
DELETE /user/1
PUT /user/1?name=xxxx...
GET /user/1

3.对组合资源的访问

上面说到子资源的访问是通过父资源来导航的,一般是通过id,也就是子资源的生命周期是依赖于父资源的。
一个常见的例子是 家庭--宝宝,通过家庭的id导航到某一个宝宝的id
GET /family/1/baby/1 --获取家庭1的1号宝宝信息


4.尽量避免访问的路径过深

在上面的例子我们知道可以在url通过id来导航查询,但这也会带来麻烦,列如:
在四川省(代码0) 成都(代码2) xx学校3的4班下面有一个学号为5的学生
过深的导航容易导致url膨胀,不易维护,如 

GET /provience/0/city/2/schools/3/classs/4/students/5,
设计的路径如果过于冗余,则可以使用如下的解决方案:
如GET /students?provience=0&city=2&schools=3&classs=4&students=5


5.使用错误码

http自带的错误码可以使用起来,更详细的可以自己封装一些错误码。
200 – OK – 一切正常
201 – OK – 新的资源已经成功创建
204 – OK – 资源已经成功擅长
304 – Not Modified – 客户端使用缓存数据
400 – Bad Request – 请求无效,需要附加细节解释如 "JSON无效"
401 – Unauthorized – 请求需要用户验证
403 – Forbidden – 服务器已经理解了请求,但是拒绝服务或这种请求的访问是不允许的。
404 – Not found – 没有发现该资源
422 – Unprocessable Entity – 只有服务器不能处理实体时使用,比如图像不能被格式化,或者重要字段丢失。
500 – Internal Server Error – API开发者应该避免这种错误。
使用详细的错误包装错误:
{
“errorCode”:'0011',
  "errors": “auth failed”
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值