【译】RESTful APIs, 一个巨大的谎言
重要更新
我新增了关于 JSON-Pure APIs 最佳实践的后续内容。但是在此之前,请先阅读下面的内容。
RESTful APIs 很好用,真的吗?
如果你看过最近10年的互联网开发者简历或相关招聘信息,那么可以原谅你认为 RESTful APIs 是 Web 开发真神赐予的礼物。RESTful APIs 到处都是,甚至市场营销人员也把他们放在销售材料中推销给 CEO 和 HR.
所以 RESTful APIs 真的是一个好想法吗?在回答这个问题之前,让我们先看下 REST 的出处,以及 RESTful APIs 的定义。
REST 的起源?
REST 流行起来是因为 Roy Fielding 在他 2000 年的博士论文 Architectural Styles and the Design of Network-based Software Architectures 中介绍并推荐了它。Roy 因为他对 web 开发,特别是 HTTP 规范的贡献而闻名。
什么是 RESTful APIs ?
REST 即表述性状态转移,是一种用于构建可扩展 web 服务的架构风格。Roy 提倡使用他在 HTTP 标准 中参与制定的请求方法来赋予 HTTP 请求语义。
因此当使用 REST 时,下面的 HTTP 请求都有不同的语义:
GET /object/listPOST /object/listPUT /object/list
这只是一部分 HTTP 请求方法。完整的列表如下:CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT, TRACE。可以原谅你从没有听说过其中的某些方法,因为它们中的一部分也一直都没得到客户端或服务端的支持。
Roy 同样主张使用 他参与制定的 HTTP 响应状态码来传达响应的语义。共有 38 种 HTTP 响应状态码,下面是一个完整的列表。为了节约空间,我缩短了一些响应头: