2022 年 6 月 30 日
什么是 API?成功构建 API 的准则是什么?应用编程接口 (API) 是一组编程函数、工具和协议,外部应用可通过它们访问平台、操作系统、应用或服务的功能或数据并与之交互。通过创建一个生态系统,使不同软件相互通信,以此提供业务功能,高效的 API 可为更大规模、更高效的数据共享和协作打开大门。API 是现代应用和基于微服务的云原生架构的核心组件,是各种服务相互通信,进而提供现代体验的主要渠道。
设计、开发和分发行之有效的 API 离不开各种优秀实践。基于这些优秀实践,开发人员和应用可以安全访问和轻松使用 API。这些优秀实践包括:
构建 API 在很大程度上取决于源和将要与之连接的外部应用的特定因素。在规划 API 开发流程时,请关注以下问题。
您的目标是什么?
对于任何类型的项目,最佳入手点都是全局,即定义和了解项目目标。因此,API 的用途就是 API 项目的指路灯。将通过 API 交换哪些信息?将如何提供 API 和使用 API?除此之外,要考虑的其他因素还包括应用的目标受众及受众需求。
您面临哪些限制?
项目目标的另一面就是项目限制因素。在开发中,实用主义态度不可或缺,这意味着您应充分了解自己面临的资源和时间限制。此外,另一个重要问题是,所有技术不足(例如安全性问题)都会影响硬件资源,还会在欠缺可扩展性时影响性能。
您的架构是什么?
在从零开始设计 API 时,开发人员有许多起点可选。对此,Python、Java、JavaScript、C# 以及更多其他语言都是开发 API 的可行选择。此外,API 设计过程中需考虑的其他因素还包括能用性、可扩展性(需结合资源需求来考察)以及安全性。最后一点特别重要:API 在应用之间发挥桥梁作用,两方应用须以适当方式来保障数据安全。否则,存在安全漏洞的 API 可能被用于不当用途,例如代码注入和数据盗窃。
在解决这些宏观问题后,企业可以制定开发准则,开发人员可以更深入地了解从零构建 API 的整个过程。
设计 API 时的一个关键决策是定义应用如何访问 Web 服务。对此,简单对象访问协议 (SOAP) 和表述性状态传递 (REST) 都是设计 API 的有效路径。两者各有优缺点,哪个更适合项目需求取决于使用情况和上下文。一般来说,Web 服务应支持 SOAP 或 REST(二者之一),因此,一种理想方法是基于在实现项目目标上的表现来为 Web 服务选择 SOAP 或 REST。
什么是 SOAP?
SOAP 是一种基于 XML 的协议,最初由 Microsoft 设计。SOAP 基于一组规则构建,在消息传递领域创建了众多标准,这些标准为大量扩展(WS-Coordination 和 WS-Security)、自动化和内置错误处理提供了支持。SOAP 在分布式环境中表现更好,但其对 XML 结构的依赖可能会导致代码过于复杂。
什么是 REST?
REST 在点对点级别运行,是作为 SOAP 的一个更简单、更轻量级的替代方案而开发的。作为一种专为高效可扩展性而构建的软件架构,REST 提供了一系列标准化约束,能够尽可能减少处理工作,同时提供灵活性。此外,REST 的快速响应特性还可以降低延迟 — 这一点适用于各种输出消息格式,包括 JSON 和 CSV。
选择 REST 还是 SOAP?
哪一个标准更适合您的应用?这取决于您的需求。对于大多数提供面向用户的简单消息(例如共享媒介或数据库查询输出)的应用,REST API 是理想选择。相比之下,SOAP 的学习和使用曲线更陡峭,但这种固有的复杂性使其能够处理更复杂的事务,例如安全支付。
构建 API 的具体细节取决于开发团队选择的工具。Oracle Cloud Infrastructure (OCI) 的 API 解决方案支持您基于 OpenAPI 规范,使用一个全面的工具包快速进行原型设计和开展验证工作,轻松设计和开发 API。借助 OCI,用户可以访问 API Blueprint 或 Swagger 来设计 API。此外,API 既可以从零构建,也可以使用模板构建,加快开发流程速度。
让我们来详细了解基于 OCI 的 API 开发流程。在这一示例中,我们使用 OCI 控制台来创建 API 资源 — 可使用基于所上载 API 说明文件创建的 API 说明。请自行注册免费 OCI 账户,然后按照步骤操作。
如需了解关于使用 Oracle 云端 API 解决方案来开发 API 的更详细信息,请阅读 Oracle API 开发人员指南 (PDF)。
全面测试 API 是确保 API 顺利启动和持续运行的关键。为帮助您部署可满足您业务需求的 API,下面简要介绍了有效的 API 优秀实践:
准备好构建和测试您的 API 了吗?免费试用 Oracle Cloud Infrastructure API 管理服务,体验这一全面的 API 生命周期管理解决方案。
注:为免疑义,本网页所用以下术语专指以下含义: