主要观点:Leonard Richardson 是长期的程序员和作者,创建了 Richardson 成熟度模型(RMM),用于根据 Web API 对 REST 的遵循程度进行分类。他讲述了自己进入网络编程的背景、早期 Web API 的历史、RMM 的起源、REST 含义的转变、Level 3 风格的超媒体控制未流行的原因、XML 到 JSON 格式转变对 Web API 进化的影响以及对 GraphQL 等非 RESTful API 技术的看法。
关键信息:
- RMM 包括四个级别:Level 0 - 纯旧 XML 的沼泽;Level 1 - 基于资源的 URL 的适当使用;Level 2 - HTTP 方法的适当使用;Level 3 - 超媒体控制。
- 早期 Web API 是对 SOAP 的反应,SOAP 是一种重量级解决方案,后被开发者从核心 Web 技术中挑选和选择设计所取代。
- REST 术语的含义几乎颠倒,大多数 API 停留在 RMM 的 Level 2。
- 超媒体控制未流行是因为资本主义,商业环境中公司更倾向于锁定,而不是互操作性。
- 从 XML 到 JSON 的转变用数据中心设计取代了文档中心设计,遗忘了超媒体。
- 对 GraphQL 等非 RESTful API 技术,应从 Roy Fielding 论文的其他章节思考,GraphQL 解决了 API 设计中的常见问题,可构建互操作的领域特定 API。
重要细节: - Leonard 高中通过 BBS 获得基本互联网访问,大学时 World Wide Web 取代了其他域特定协议。
- SOAP 曾有很大影响力但公开部署的服务很少,因其重且需要大量工具。
- 在 Web 发展过程中,开发者逐渐从核心 Web 技术中选择设计。
- RMM 最初在 2008 年的一次演讲中提出,分析了约一百个 Web API 设计。
- 在商业环境中,公司更倾向于锁定用户,而非互操作性。
- 图书馆世界仍使用 1993 年的 SIP 协议,因为其提供了互操作性。
- JSON 处理方便但无超媒体控制,限制了后续设计。
- Leonard 即将在当前工作中接触 GraphQL,认为它是现代版 SOAP 优化了数据库查询。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。