1.REST vs SOAP
REST(接口优先)提供了更加轻量的思维方式
SOAP 重,浏览器有跨域限制,javascript需要借助后端程序及wsdl代理类调用公共服务
2.RESTFul API 特点
是REST的API设计理念的延伸(轻 JSON)
2.1 基于资源,增删改查都只是对资源状态的改变(URL,且建议不要用动词,用名词)
2.2 使用HTTP动词来操作资源(主要GET、POST、PUT、DELETE)
选择GET或POST依据(技术上没区别,意义上区别大)
通常传统web开发是如果参数足够简单,不管增删改都是用GET,否则使用POST(比如:表单)
但是在REST服务中来说,是根据是查询操作还是新增操作来做依据的
3.RESTFul API最佳实践
@HTTP动词(幂等性、资源安全性(限了解))
POST: 创建
PUT:更新
GET: 查询
DELETE:删除
状态码、错误码
详见https://www.cnblogs.com/yangchunlong/p/8063732.html
有歧义(不规范,需要具体根据实际判断)
202 更新成功
403 被禁止访问(需要考虑,a用户操作b用户数据的情况)
统一描述错误:错误码、错误信息、当前URL(产生错误的URL)
使用Token令牌来授权和验证身份
版本控制(v1、v2…)
测试和生产环境分开:api.xxx.com/dev.api.xxx.com
URL设计规范
URL语义要明确(望文知意)
最好有比较标准的文档(中大型team)
4.RESTFul API的设计
学习RESTFul API的最佳方式—模仿
豆瓣开发API(简单,接口能调用,但是文档目前已经不能打开了)
https://www.jianshu.com/p/5ada97c547b7
https://blog.csdn.net/izengjing/article/details/82963735
GitHub开发者API(规范、标准)
RESTFul API的合理使用(切勿盲目照搬标准REST)
项目中大多是内部开发接口,基于资源,不要全部开放