优点
1.通过url对资源定位,语义清晰;
2.通过HTTP谓词表示不同的操作,接口自描述;
3.可以对GET、PUT、DELETE请求重试(幂等的);
4.可以对GET请求做缓存;
5.通过HTTP状态码反映服务器端的处理结果,统一错误处理机制;
6.网关等可以分析请求处理结果。
请求重试-是幂等的,失败之后可以多次发起请求
做缓存-降低服务器的压力,响应速度更快
关键不同的状态码处理不同的请求返回
网关-可以检测发起的请求,若500太多的时候就会报错
Q点:
有些浏览器与运营商会在你的响应报文里面加广告
示例restful使用
URL:适合定位,用于资源定位的
QuerySting:灵活,长度限制,通常为URL以外的数据
请求报文体:灵活,长度不限制,不支持GET与DELETE,供PUT、POST提供数据
/Student/火属性/Type/2/ON/6
/Student?Status=火属性&Type=2&ON=6
参考实施指南
1.对于保存、更新类的请求POST、PUT(幂等的)请求,把全部参数都放到请求报文体中;2.对于DELETE请求,要传递的参数就一个资源id,因此把参数放到QueryString中即可;
3.对于GET请求,一般参数的内容都不会太长,因此统一通过QueryString传递参数即可。对于极少数的参数内容超过URL限制的请求,由于GET、PUT请求都是幂等的,因此改查PUT请求把参数通过报文体传参。
/User/5 PATCH //符合rustful风格,但具体使用那个看自己
{"email":"@ab.com","age":"5"}
/User PATCH
{"id":"5","email":"@ab.com","age":"5"}
/User/5 DELETE
/User?id=5 QueryString