API 的概念和实现都已不是新鲜事物;软件工程师创建和使用 API 来实现组件交互已有几十年的历史。但是,API 经济的发展是由通常描述为 Web API 的服务所驱动的。 Web API 是一种 Web 服务实现,具有以下约定:
理解为什么出现这些约定很重要,因为它们为您在定义 Web API 时制定的设计决策提供了背景。
要了解更多信息,请阅读此处的红皮书。
许多有关 Web API 的讨论都在争论 REST 与 SOAP 有何区别。为了帮助您了解这一争论背景,阐明为何 REST 成为实现 Web API 的流行风格很重要。
REST(具象状态传输)体现在大多数可供应用开发人员使用的 Web API 中。它最初是由 Roy Fielding 在其论文“ 基于网络的软件架构的架构风格和设计 ”中提出的,随后万维网联盟(W3C) 在 HTTP/1.1 中规范化了 REST 的许多元素。这篇论文概括了一种框架,通过该框架,可以在软件架构背景中了解软件,文中还概括了此框架与基于网络的应用架构(比如万维网)的特定关系。该论文还介绍了 REST 作为此方法的一个示例。
REST 示例描述了一些关键原则(Fielding 将它们描述为约束),这些原则旨在用各种公式来阐述所制定的软件工程设计决策。这些原则描绘了如今使用的大部分基于 REST 的 API 的特征:
对于 REST 模式的崛起,您可能会问的问题是,为什么它成为了 Web API 的流行风格?简言之,因为有关此主题的信息已有很多,这里将简要说明以下几个原因:
上面概括的原因设定了在创建 Web API 时制定选择使用 REST 的设计决策的背景,因为 REST 满足了使用现有技术(比如 SOAP)无法满足的具体需求。
但是,REST 不会让 SOAP 的使用变得多余。许多 Web API 都实现了 SOAP,而且 SOAP 将继续是企业服务集成的重要构建块,特别是在实现 SOA 的组织中。在这些情况下,Web API 和 REST 的作用之一是为现有服务提供补充,允许以有意义的方式向外部用户公开服务。
您应该在解决特定需求的背景下制定决策,而不是基于单纯的技术优势。
人们开始越来越多地采用 JavaScript 对象表示法 (JSON) 作为表示资源的机制,这进一步推动了 REST 的发展。与 REST 一样,这种发展是有机的,而且有多种驱动因素:
移动应用促进了 Web API 的采用,而且需要在受限的通信链路上传输紧凑的有效负载 Web 开发者社区使用了 Web API,而且这个受众群体能够与 JSON 编码的数据产生共鸣。但是,由于以下因素,XML 仍是一个受欢迎的选择:
使用 JSON 与使用 XML 没有天壤之别。根据目标受众,您的设计决策可以支持一种、两种或者甚至其他格式。
要了解更多信息,请阅读此处的红皮书。