目录
Web API开发有两种风格:面向过程(RPC)、面向REST
RPC
业务驱动,自然
“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道,不关心HTTP谓词。通过QueryString、请求报文体给服务器传递数据。状态码。比如:/Persons/GetAll、/Persons/GetById?id=8、/Persons/Update、/Persons/DeleteById/8;
REST
要求开发人员对REST原则更了解、并且有更多的设计能力。
按照HTTP的语义来使用HTTP协议:
1、URL用于资源的定位:/user/888、/user/888/orders;
2、HTTP谓词:GET、POST(新增)、PUT(整体更新)、DELETE、PATCH(局部更新)等;
3、什么是“幂等”,举例?DELETE、PUT、GET是幂等的,POST不幂等;
4、GET的响应可以被缓存;
5、服务器端要通过状态码来反映资源获取的结果:404、403(没有权限)、201(新增成功)。
REST优点
- 通过URL对资源定位,语义更清晰;
- 通过HTTP谓词表示不同的操作,接口自描述;
- 可以对GET、PUT、DELETE请求进行重试;
- 可以用GET请求做缓存;
- 通过HTTP状态码反映服务器端的处理结果,统一错误处理机制。
- 网关等可以分析请求处理结果。
REST缺点
- 真实系统中的资源非常复杂,很难清晰地进行资源的划分,对技术人员的业务和技术水平要求高。
- 不是所有的操作都能简单地对应到确定的HTTP谓词中。
- 系统的进化可能会改变幂等性。
- 通过URL进行资源定位不符合中文用户的习惯。
- HTTP状态码个数有限。
- 有些环节会篡改非200响应码的响应报文。
- 有的客户端不支持PUT、DELETE请求。
Restful如何传递参数
- URL:适合定位;长度限制