API 开发:构建可扩缩的 Web 服务

在互联互通的数字世界中,应用很少独立运行。它们需要以安全且标准化的方式相互通信、共享数据并公开功能。这时,API 开发就派上用场了。

API 开发的定义

API 开发是指创建、发布和管理应用编程接口的端到端流程。

这是一门综合学科,远远不止编写后端代码那么简单。该流程涵盖 API 的整个生命周期,从战略规划和精心设计开始,到实现和严格测试,再到安全部署、持续维护和版本管理。

什么是 API?

API(应用编程接口)是一组规则和定义,可让不同的软件应用相互通信并请求服务。它充当中间人,使应用能够共享数据和功能,而无需了解另一个系统的复杂内部运作方式。API 定义了用户发出请求的正确方式,以及用户希望返回的响应类型。

为什么 API 开发很重要?

设计精良的 API 通常被视为现代数字服务的基础组件,为创新和敏捷性奠定了基础。

  • 实现连接和集成:API 充当连接组织,使不同的系统、服务和应用能够无缝共享数据和功能
  • 支持现代架构:API 的开发是微服务架构的基础,在微服务架构中,应用被分解为更小的独立服务,这些服务通过 API 相互通信
  • 促进创新和合作:通过公共 API 公开功能,公司可以允许第三方开发者在其平台上构建新的应用和服务,从而打造充满活力的生态系统
  • 推动新的业务渠道:API 本身就是产品,通过向其他企业提供有价值的数据或服务,创造新的收入来源

API 开发中的主要概念

为了有效地构建和使用 API,了解一些基本概念非常重要。

API 端点是客户端应用用来访问 API 的特定网址。每个端点都与应用中的不同功能或资源相关联。

例如,在用户管理 API 中,您可能会有以下端点:https://api.example.com/users,用于获取用户列表;https://api.example.com/users/123,用于获取特定用户的数据。

API(尤其是 RESTful API)使用标准 HTTP 谓词来指示要对资源执行的操作。最常见的方法包括:

GET:从指定资源检索数据。

POST:向资源提交新数据。

PUT:使用新数据更新现有资源。

DELETE:移除指定的资源。

以下是两个关键的安全概念

  • 身份验证是验证用户或客户端身份的过程,通常使用 API 密钥或 OAuth 令牌
  • 授权是确定经过身份验证的用户可以执行哪些操作的过程,确保他们只能访问有权访问的数据并执行有权执行的操作

清晰、全面的交互式文档对于任何 API 的成功都至关重要。文档相当于其他用户的用户手册,其中说明了 API 的用途、如何使用其端点、所需的数据格式以及如何对请求进行身份验证。

API 架构样式

设计 API 的方法有很多,但有三种架构样式已成为业界最主流的选择。选择哪种样式很大程度上取决于应用的具体要求,例如对灵活性、性能或严格安全标准的需求。

架构样式

主要优势

常见使用场景

RESTful API

  • 简单性和可伸缩性:使用标准 HTTP 方法,并且是无状态的,因此易于理解、实现和横向扩缩
  • 灵活性:支持多种数据格式,其中 JSON 最为常见,它是一种轻量级格式,易于 Web 客户端解析
  • 广泛采用:它是最广泛使用的 Web API 样式,拥有庞大的工具生态系统和开发者知识
  • 面向公众的 Web API
  • 移动应用后端
  • 内部微服务通信

SOAP API


  • 安全性高:包含 WS-Security 等内置标准,这些标准是许多企业和政府环境中所必需的
  • 标准化且可靠:作为具有严格合约 (WSDL) 的正式协议运行,确保可靠性并支持事务(符合 ACID)
  • 语言无关:基于 XML 的严格格式高度标准化,并且不受平台限制
  • 需要高安全性和事务完整性的企业应用
  • 财务和支付网关集成
  • 旧系统集成

GraphQL

  • 数据效率:可让客户端准确请求所需数据,避免 REST API 中常见的过度提取问题
  • 减少网络调用:客户端可以在单个请求中检索来自多个资源的数据,这对于网络带宽有限的移动应用尤其有利
  • 强类型架构:该 API 基于强类型系统构建,可实现强大的开发者工具,并使 API 能够自行记录
  • 数据用量和网络效率至关重要的移动应用
  • 具有复杂数据模型和相互关联的资源的应用
  • 汇总来自多个微服务的数据的前端

架构样式

主要优势

常见使用场景

RESTful API

  • 简单性和可伸缩性:使用标准 HTTP 方法,并且是无状态的,因此易于理解、实现和横向扩缩
  • 灵活性:支持多种数据格式,其中 JSON 最为常见,它是一种轻量级格式,易于 Web 客户端解析
  • 广泛采用:它是最广泛使用的 Web API 样式,拥有庞大的工具生态系统和开发者知识
  • 面向公众的 Web API
  • 移动应用后端
  • 内部微服务通信

SOAP API


  • 安全性高:包含 WS-Security 等内置标准,这些标准是许多企业和政府环境中所必需的
  • 标准化且可靠:作为具有严格合约 (WSDL) 的正式协议运行,确保可靠性并支持事务(符合 ACID)
  • 语言无关:基于 XML 的严格格式高度标准化,并且不受平台限制
  • 需要高安全性和事务完整性的企业应用
  • 财务和支付网关集成
  • 旧系统集成

GraphQL

  • 数据效率:可让客户端准确请求所需数据,避免 REST API 中常见的过度提取问题
  • 减少网络调用:客户端可以在单个请求中检索来自多个资源的数据,这对于网络带宽有限的移动应用尤其有利
  • 强类型架构:该 API 基于强类型系统构建,可实现强大的开发者工具,并使 API 能够自行记录
  • 数据用量和网络效率至关重要的移动应用
  • 具有复杂数据模型和相互关联的资源的应用
  • 汇总来自多个微服务的数据的前端

API 开发生命周期

构建生产级 API 是一个结构化的过程,涉及多个不同的阶段。

1. 规划和设计

在初始阶段,需要定义 API 的目标、了解目标受众群体并设计 API 的合约。这种“设计优先”的方法通常使用 OpenAPI 规范等规范语言来创建端点、数据模型和身份验证方法的蓝图,然后再编写任何代码。

2. 开发和实现

在此阶段,用户需要编写后端代码,以实现设计阶段定义的逻辑。用户选择一种编程语言和框架(例如 Python 和 Flask,或 Node.js 和 Express),并构建用于处理传入 API 请求的函数。

3. 测试

严格的测试对于确保 API 可靠、安全且性能良好至关重要。这包括针对各个函数的单元测试、确保系统不同部分协同工作的集成测试,以及查看 API 在高流量下的行为的负载测试。

4. 部署

API 构建和测试完成后,会部署到托管环境中,供客户端应用访问。这可以是传统服务器、虚拟机或云中的现代无服务器平台。

5. 监控和维护

部署后,必须持续监控 API 的错误、延迟和使用模式。这种可观测性让团队能够主动发现问题、排查问题并了解 API 的使用情况。

6. 版本控制

随着业务需求的发展,API 也必须随之更改。明确的版本控制策略(例如在网址中包含版本号,如 /v2/users)至关重要,可让用户引入变更或新功能,而不会破坏依赖旧版本的现有应用。

API 开发最佳实践

  • 遵循设计优先方法:在编写代码之前,使用 OpenAPI 等规范来设计 API
  • 使用一致的命名惯例:保持端点路径和数据字段可预测且易于理解
  • 提供清晰详尽的文档:让其他用户可以轻松学习和使用您的 API
  • 实施强健的安全措施:强制执行身份验证和授权,以保护您的数据和服务
  • 从一开始就规划版本控制:决定如何处理更改,以避免将来破坏客户端应用
  • 提供有意义的错误消息:当出现问题时,返回清晰的错误消息和适当的 HTTP 状态代码,帮助用户排查问题

利用 Google Cloud 解决业务难题

新客户可获得 $300 赠金,用于抵扣 Google Cloud 的费用。

API 开发入门

对于刚接触这一流程的人来说,构建第一个 API 是一项容易完成的任务。将这一流程分解为几个关键步骤,有助于揭开它的神秘面纱。

选择语言和框架

选择您熟悉的编程语言和 Web 框架。热门选择包括 Python 搭配 Flask 或 FastAPI 等框架,或者 Node.js 搭配 Express,因为它们有出色的支持和庞大的社区。

设置开发环境

在本地机器上安装必要的工具。这通常包括语言运行时(例如 Python)、代码编辑器(例如 VS Code)和版本控制系统 Git。

编写您的第一个 API 端点

首先编写一个简单的“Hello, World!”端点。这需要创建一个路由,以响应 GET 请求并返回简单的 JSON 消息。这有助于在您开始处理更复杂的逻辑之前,确认您的基本设置、框架和服务器是否正常运行。

API 开发的优势

可伸缩性

云平台可以根据流量自动扩缩 API 的计算资源,帮助确保性能,而无需过度预配。

代管式服务

云服务提供商负责处理底层基础设施、服务器维护和安全修补,让您的团队可以专注于 API 的逻辑。

遍及全球的覆盖范围

您可以轻松地将 API 部署到世界各地的数据中心,从而减少全球用户群的延迟。

集成式工具

云平台提供丰富的集成服务生态系统,包括数据库、监控、日志记录和 CI/CD,可简化整个开发生命周期。

您想解决什么问题?
What you'll get:
分步指南
参考架构
可用的预构建解决方案
此服务是使用 Vertex AI 构建的。您必须年满 18 周岁才能使用。请勿输入敏感信息、机密信息或个人信息。

其他资源