作者:知乎用户OTZg8B
链接:https://www.zhihu.com/question/438825740/answer/1691981151
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
RESTful 本身的缺陷
- RESTful 不是一种规范,而是一种风格,它不具有强制性。
- RESTful 定义本身包含很多“模糊性”,导致“自由发挥的空间”很大,因此各家有各家的理解,也就造就了各种“方言”。
- RESTful 是一种基于“资源”的接口设计形式,核心是名词。这对于只有增删改查的业务来说很合适,但现实业务并不只有增删改查。比如常见的业务有冻结/解冻等。这时候你至少会纠结这种接口应该用PATCH/PUT呢还是POST/DELETE呢?
- 抽象资源。所谓的抽象资源是“不直接对应数据库表的资源”。比如“登录/登出”。如果你用RPC式的接口设计,这就很直接:POST /login 和 POST /logout。但是你要硬套RESTful,你就得挖空心思的想出一个抽象资源“会话”(session)。登录 = 创建会话,登出 = 销毁会话。于是你把接口设计成 POST /sessions 和 DELETE /sessions