什么是 API?
API 是允许两个软件组件使用一组定义和协议相互通信的机制。例如,气象局的软件系统包括每天的天气数据。您手机上的天气应用程序通过 API 与该系统“对话”,并在您的手机上显示每天的最新天气信息。
API 代表什么?
API 代表应用程序编程接口。在 API 环境中,应用程序一词指的是任何具有独特功能的软件。接口可以看作是两个应用程序之间的服务合约。该合约定义了两者如何使用请求和响应相互通信。它们的 API 文档包括与开发人员如何构建这些请求和响应有关的信息。
API 的工作原理是什么?
API 架构通常从客户端和服务器的角度来解释。发送请求的应用程序称为客户端,发送响应的应用程序称为服务器。以天气为例,气象局的天气数据库是服务器,而移动应用程序是客户端。
API 有四种不同的工作方式,具体取决于其创建时间和创建原因。
SOAP API
这些 API 使用简单对象访问协议。客户端和服务器使用 XML 交换消息。这是一个不太灵活的 API,它在过去比较流行。
RPC API
这些 API 称为远程过程调用。客户端在服务器上完成函数(或过程),而服务器将输出发回客户端。
Websocket API
Websocket API 是另外一种使用 JSON 对象传递数据的现代 Web API 开发方式。WebSocket API 支持在客户端应用程序和服务器之间进行双向通信。服务器可以向连接的客户端发送回调消息,使其比 REST API 更高效。
REST API
这些是如今最流行、最灵活的 Web API。客户端以数据形式向服务器发送请求。服务器使用该客户端输入来开始执行内部函数,并将输出数据返回到客户端。下面让我们进一步了解一下 REST API。
什么是 REST API?
REST 代表表现层状态转换。REST 定义了一组函数,如 GET、PUT、DELETE 等,客户端可以使用这些函数来访问服务器数据。客户端和服务器使用 HTTP 交换数据。
REST API 的主要特点是无状态。无状态意味着服务器不会保存各种请求之间的客户端数据。客户端对服务器的请求类似于您在浏览器中键入的、用来访问网站的 URL。来自服务器的响应是纯数据,不包括典型的 Web 页面图形化渲染。
什么是 Web API?
Web API 或 Web 服务 API 是 Web 服务器和 Web 浏览器之间的应用程序处理接口。所有 Web 服务都是 API,但不是所有 API 都是 Web 服务。REST API 是一种特殊类型的 Web API,它采用上面介绍的标准架构样式。
从历史上来看,与 API 有关的各种术语(如 Java API 或服务 API)之所以存在,是因为 API 是在万维网出现之前创建的。现代 Web API 是 REST API,而且这些术语可以换用。
什么是 API 集成?
API 集成是在客户端和服务器之间自动更新数据的软件组件。部分 API 集成示例包括,当您自动将手机图片库中的数据同步到云时,或者当您前往其他时区时,您笔记本电脑上的时间和日期会自动同步。企业还可以使用 API 来高效自动执行许多系统功能。
REST API 有哪些优势?
REST API 有四大优势:
1.集成
API 用于将新应用程序与现有的软件系统集成。这可以提高开发速度,因为不必从头开始编写每个功能。您可以通过 API 来利用现有代码。
2.创新
一款新应用程序的出现可能会给整个行业带来变化。企业需要快速响应并支持快速部署创新型服务。他们可以通过在 API 级别进行更改来做到这一点,而无需重新编写所有代码。
3.扩展
API 可为企业提供独特机会,从而跨不同平台满足客户的需求。例如,地图 API 允许通过网站、Android、iOS 等平台整合地图信息。任何企业都可以通过使用免费或付费 API 来提供类似的内部数据库访问权限。
4.易于维护
API 充当两个系统之间的网关。每个系统都必须进行内部更改,以便 API 不会受到影响。这样,一方未来对代码做出的任何更改都不会影响另一方。
有哪些不同类型的 API?
API 根据其架构和使用范围进行分类。我们已经探讨了 API 架构的主要类型,下面我们来看看它的使用范围。
私有 API
这类 API 面向企业内部,仅用于连接企业内的系统和数据。
公有 API
这类 API 面向公众开放,任何人都可以使用。可能存在与这些类型的 API 相关的授权和成本。
合作伙伴 API
只有获得授权的外部开发人员才能访问,这些 API 有助于企业之间建立合作伙伴关系。
复合 API
这些 API 融合了两个或多个不同的 API,可以满足复杂的系统要求或处理复杂行为。
什么是 API 端点,以及它有什么重要意义?
API 端点是 API 通信系统中的最终接触点。其中包括服务器 URL、服务和其他特定数字位置,通过这些端点可在系统之间发送和接收信息。API 端点对企业至关重要,主要有以下两个原因:
1.安全性
API 端点使系统容易受到攻击。API 监控是防止滥用的关键。
2.性能
API 端点(尤其是高流量端点)可能会引发瓶颈并影响系统性能。
如何保护 REST API?
必须通过适当的身份验证和监控为所有 API 提供保护。保护 REST API 的两种主要方法包括:
1.身份验证令牌
这些令牌用于授权用户进行 API 调用。身份验证令牌可用于确认用户身份是否属实,以及他们是否具备该特定 API 调用的访问权。例如,如果您登录电子邮件服务器,电子邮件客户端会使用身份验证令牌实现安全访问。
2.API 密钥
API 密钥可验证进行 API 调用的程序或应用程序。它们可标识应用程序,并确保应用程序具有进行特定 API 调用所需的访问权。API 密钥不如令牌安全,但可以实现 API 监控以收集使用情况数据。当您访问不同的网站时,您可能会注意到浏览器 URL 中有一长串字符和数字。此字符串是网站用于进行内部 API 调用的 API 密钥。
如何创建 API?
要构建其他开发人员愿意使用并信任的 API,需要尽职尽责并付出努力。以下是设计优质 API 所需的五个步骤:
1.规划 API
API 规范(如 OpenAPI)可为 API 设计提供蓝图。最好提前考虑不同的使用场景,并确保 API 符合现有的 API 开发标准。
2.构建 API
API 设计人员使用样板代码进行 API 原型设计。原型通过测试后,开发人员可以根据内部规范对其进行定制。
3.测试 API
API 测试与软件测试相同,必须进行测试以防止错误和缺陷。API 测试工具可用来进一步测试 API 应对网络攻击的能力。
4.编写 API 文档
虽然 API 不言自明,但 API 文档可充当提高可用性的指南。妥善编写文档的 API 可提供一系列功能和使用场景,在面向服务的架构中往往更受欢迎。
5.将 API 推向市场
Amazon 是零售领域的在线市场,而 API 市场则为开发人员提供了购买和销售其他 API 的平台。上架您的 API,以便通过它获利。
什么是 API 测试?
API 测试策略类似于其他软件测试方法。重点是验证服务器响应情况。API 测试包括:
- 向 API 端点发出多个请求以进行性能测试。
- 编写用于检查业务逻辑和功能正确性的单元测试。
- 通过模拟系统攻击进行安全测试。
如何编写 API 文档?
编写全面的 API 文档是 API 管理流程的一环。API 文档可以使用工具自动生成,也可以人工编写。部分最佳实践包括:
- 用简单易懂的英文表达编写说明。工具生成的文档可能会比较冗长,需要编辑。
- 使用代码示例来说明功能。
- 维护文档,使其准确并保持最新状态。
- 编写文档时要充分考虑新手
- 说明 API 可以为用户解决的所有问题。
如何使用 API?
实施新 API 的步骤包括:
- 获取 API 密钥。这可以通过 API 提供商创建经过验证的账户来实现。
- 设置 HTTP API 客户端。此工具允许您使用收到的 API 密钥轻松构建 API 请求。
- 如果您没有 API 客户端,可以参考 API 文档,亲自尝试在浏览器中构建请求。
- 熟悉新的 API 语法后,您可以开始在代码中使用它。
在哪里可以找到新的 API?
可以在 API 市场和 API 目录中找到新的 Web API。API 市场是一个开放的平台,任何人都可以在这里上架 API 来出售。API 目录是受目录拥有者监管的受控存储库。专业 API 设计者在将新 API 添加到他们的目录之前,可能会对其进行评估和测试。
部分热门 API 网站包括:
- Rapid API – 全球最大的 API 市场,拥有 10000 多个公有 API 和 100 万名在线活跃的开发人员。RapidAPI 允许用户在购买之前直接在平台上测试 API。
- Public APIs – 该平台将远程 API 分为 40 个细分类别,让您更轻松地浏览并找到符合自己需求的相关 API。
- APIForThat 和 APIList – 这两个网站提供包含 500 多个 Web API 的列表,并深入介绍了这些 API 的使用方法。
什么是 API Gateway?
API Gateway 是一种 API 管理工具,适用于使用各种后端服务的企业客户端。API Gateway 通常用于处理适用于所有 API 调用的常见任务,如用户身份验证、统计数据和速率管理。
Amazon API Gateway 是一种完全托管的服务,可以帮助开发人员轻松创建、发布、维护、监控和保护任意规模的 API。它负责管理所有任务,涉及接受和处理数千个并发 API 调用,包括流量管理、CORS 支持、授权和访问控制、节流、监控,以及 API 版本管理。
什么是 GraphQL?
GraphQL 是一种专门为 API 开发的查询语言。它只是为了优先为客户端提供所请求的确切数据。它旨在提高 API 速度和灵活性,并便于开发人员使用。作为 REST 的替代方案,GraphQL 为前端开发人员提供通过单一 GraphQL 端点查询多个数据库、微服务和 API 的功能。 各家企业都选择使用 GraphQL 构建 API,因为它有助于加快应用程序开发速度。 在此进一步了解 GraphQL。
AWS AppSync 是一项完全托管式服务,通过处理与 AWS DynamoDB、AWS Lambda 等数据来源之间繁重的安全连接任务来开发 GraphQL API 等,并且 AWS AppSync 可以通过 Websocket 向数百万客户端推送实时数据更新。对于移动和 Web 应用程序,AppSync 还可以在设备离线时提供本地数据访问权限。部署之后,AWS AppSync 会自动扩展和缩减 GraphQL API 执行引擎以满足 API 请求量需求。
如何获取 Amazon API 服务?
应用程序编程接口管理是现代软件开发的重要一环。对于内部和外部用户而言,都有必要投资搭建 API 基础设施,包括工具、网关和微服务架构。
Amazon API Gateway 提供全方位的功能,可以同时高效管理多个 API。通过在 AWS 门户注册,您可以免费进行多达一百万次 API 调用。
AWS AppSync 提供完全托管式 GraphQL API 设置、管理和维护,且内置可用性很高的无服务器基础设施。您只需按实际用量付费,不设最低费用或强制服务使用量。要开始使用,请登录 AWS AppSync 控制台。