许多人认为 API 是组织访问云计算供应商提供的服务的最佳方法。云使用者使用 API 作为软件接口,以各种方式连接和使用资源,但最优或现代的途径是使用基于 ">RESTful 协议的 API。请继续阅读,理解 API 的概念,以及它们在 REST API 和云计算服务中如何使用。本文提供了多个用例来演示如何在真实世界中使用此技术。
API 入门
API 是一些软件接口,它们针对数据处理而优化了应用程序或服务的开发。开发人员常常通过头文件将 API 导入或集成到现有代码库中。但是,随着 Web 服务的诞生,开发人员开始创建 API,将发布或使用基于 Web 的服务的能力与第三方系统软件相结合。
随着技术的不断成熟,科技公司和职能部门已开始转移(或者至少已经在尝试转移)到面向服务的体系架构 (SOA) 模型。该模型允许使用面向对象的编程语言来开发 Web 服务,开发人员可适当地调用和重用这些服务。Google Maps API 就是一个基于 Web 的 API 的示例,它允许开发人员在其应用程序或网站中适当地调用和使用此服务。
API 的结构
开发人员需要遵循最佳实践和标准来正确地开发、发布和使用 API。这些最佳实践和标准依赖于 API 针对的编程语言所规定的基本结构,这些语言包括 Java、Microsoft® .NET、Objective-C、JavaScript Object Notation (JSON) 或可扩展标记语言 (XML)。图 1 和图 2 给出了基于 XML 的 API 的一些示例。
图 1 是 PAID 的运送 API,它允许组织将此功能捆绑到其电子商务站点中。
图 1. 用于运送和物流用途的 API(该图的使用已获得 AuctionInc 的许可)
图 2 是 Instra 的 API,它允许组织出于基础架构用途而直接连接到他们的域名注册商。
图 2. 用于域名托管用途的 API(该图的使用已获得 Instra Corporation 的许可)
除了使用的编程语言之外,API 还需要考虑服务本身的性质。换句话说,如果 API 是为客户端创建的,不是为服务器端使用而创建的,则需要遵循不同的规则。
无论 API 是为客户端用途而构建还是为服务器端用途而构建,开发人员面临的事实是,构建服务时都需要考虑高性能和安全处理。客户端 API 的开发人员会关注应用程序的用户界面、审美学和外观。服务器端 API 的开发人员要处理原始应用程序的高级功能或服务,考虑功能效用。无论 API 将用于何处,如今的开发人员都倾向于使用 RESTful API,这源于这些 API 的灵活性和通用性。
REST API
RESTful API 遵循 SOA 模型,因此基于 Web 服务的软件架构通常会通过 XML 或 JSON 将它用于集成用途。这意味着,它们被 Internet 浏览器或 Web 服务器使用。前面已经提到过,RESTful API 是一种相对较新的技术,需要开发人员拥有当前的 Web 2.0 技术的全面知识。因此,许多缺乏更新其技术栈的动力的组织可能无法使用此产品。可能目前未重视 RESTful API 的组织一定未考虑成为云使用者。这些组织可能包括法律事务所、高等教育机构和非营利集团。但是,RESTful API 已是一个既成事实。
主要的处理和存储资源已逐渐原理终端设备,从这种意义上讲技术已兜了一圈之后又回到了原位,与大型机和哑终端盛行的时期很相像。这源于全球化、越来越远程或移动化的员工、无处不在的 Internet 连接,以及 SOA 和 Web 2.0 技术(比如 RESTful API)的成熟。随着用于数据处理任务的云计算通过 API 加入战团,此趋势正在接近临界值。