restful的理解
转载:https://segmentfault.com/a/1190000006735330
restful
一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交
互类的软件。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。它结
构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
HTTP 协议中的通常用以下动词表示这四类具体的操作:
GET :查询资源操作。
POST :新建资源操作,也可以用于更新资源。
PUT :更新资源操作。
DELETE :删除资源操作。
使用传统 RPC 形式设计针对用户对象的 CRUD 操作:
在以上实例中,需要通过四个 URL 来实现 CRUD 操作。而通过 Restful API 设计,可为如下实例
|
|
Restful API 劣势
用户登录验证,使用 RPC 形式设计接口如下:
https://open.domain.com/app/checkUser
在以上实例中,对于 Restful API 而言,很难将该业务归类为 HTTP 动词中的某一种。又比如“下单”这一功能,它涉及到了订单、用户、支付账户等多个资源实体的多种操作,因此同样也难以设计为 Restful API 。
Restful API 可能遇到的问题
1、接口版本升级,难维护
2、使用 URL 地址参数形式时,对于可选参数,服务端难以实现正确的读取
3、针对特定的业务功能,难以完全按照 Restful 要求进行设计。例如用户验证、订单提交等涉及到多个资源实体和多种操作的业务流程。
4、Restful 本身并没有安全性方面的标准,需要根据不同的使用场景设计 API 的安全控制方案。