在这个时代,”流行语”几乎包含所有的东西。由于网络充满了信息几乎无处不在地提供给大家,这些术语就被大家在相关社区经常说起然后夸大。
软件工程社区,当然,也不例外。
在以前的一篇文章 – “Software Defined Storage – What Is It?” 出自 Wai Lam, 我们 Cirrus Data 的 CTO –我们讨论了流行语”SDS”,这已在企业级存储界迅速得到普及。今天的流行语更是应用广泛,大多数活跃的软件开发商至少都听说过 – “RESTful API.”
REST API 出现在所有不同的类别的软件产品中。从巨大的网络应用像 Twitter 和电子商务平台如 eBay,到无线连接的灯泡和厨房电器,它们都支持 REST API。许多厂商甚至使用 REST API 作为一个广告插件。鉴于它产生的热情,人们可能会好奇地问,什么是 REST API 呢?
那么,REST API 代表“具象状态传输的 API。”
非常感谢。这解释了一切!但是,REST API 真正是什么?
事实上,REST API 是一个应用程序接口,它允许在网络上访问底层资源,通过 Web 服务器 – 不多,也不少。REST 是一种架构风格,它提供标准化的约束,这些接口应该如何构建,如命名规范,认证(无国籍),等等。
这里的关键词是“约束”,也是限制的意思,这意味着你不得不在这些限制内工作。
这种架构风格设置了由不同方提供的 API 遵守准则,但是 REST API 本身并不是一种新的技术或发明。它类似于使用标准的 HTTP 动词,或者仅用名词命名的端点(URL)。这些约束使得不同的产品之间的整合更直接和有效。
Web 界面已经伴随我们很长一段时间,每个人曾经通过浏览器访问互联网沟通通过 web 界面。这是所有的 REST API 使用的相同机制。一个 HTTP 请求被发送然后返回数据。无论是原始数据或标记数据,一个浏览器呈现使得在技术方面没有什么区别。那么为什么 REST API 突然成为热门话题?
主要的原因是 – 没有意外 – 在网络上的人气急升,网络浏览器,和一般的互联网。为什么你的WiFi功能的灯泡可提供 REST API 的唯一原因是因为它现在连接到互联网。同样的,你现在可以通过 REST API 访问大多数的数据存储系统,因为现在还提供了一个基于浏览器的用户界面,而不是传统的命令行,或基于桌面的用户界面,通过封闭的专有网络协议互动。
REST API 只是一个界面。它的确是一个很好的界面标准/公约,提供的完全是一个编程的界面做的 – 它允许产品以编程方式整合,特别是通过网络,在适当的和适用的时候。
问这样的问题之前,有人可能会在思考“这个产品采用 REST API 吗?”或者在一个工作会议中提问,关于是否“你的产品的所有模块可以通过 REST API 交流吗?”仿佛 REST API 是软件的某种未来的奇迹,可以随时随地在任何情况下应用 – 它不是,它不能。
“使用” REST API,无论是作为消费者还是提供商,不会自动使一个产品“为未来做好准备。”相反,当它是适用的时候,它帮助产品更能够与其他产品或实用工具进行交互编程。
事实上,一组 REST API 的可用性做为一项产品功能来说是有益的,因为它促进与外部各部分的集成。但正如你现在可能已经意识到,REST API 不是使一个产品好的必须条件。一个好的产品,可以提供良好的用户界面,自然提供了REST API。
有一定的区域,用途和功能,用户和其他开发人员可以从连接到第三方应用中受益,例如,报表生成和系统监控/报警。在这些情况下,提供面向用户的 API,是非常可取的兼容 REST 风格的。然而,对于许多模块间的通信,它是国内唯一的,一整套严格的 REST 兼容的 API 并不提供任何附加价值的产品,于其他任何精心设计和定义模块间的通信协议。
在 CDS,我们规定“REST API”时尚。我们整个产品线的 GUI 是建立在 REST API上 的,相同的 REST API 设置让开发人员很容易访问。
简而言之,REST API 有价值的地方是它实际上是有意义的,而不是因为它是新兴技术。
An alternate version of this post appeared simultaneously in App Developer Magazine.