应用程序是软件或程序。例如,手机上的应用程序(如 WhatsApp 或 Facebook)或 YouTube 和 Reddit 等网站都是应用程序。编程是指允许您创建软件和应用程序的代码。两个应用程序之间的接口使它们能够相互通信。
API 是使两个软件应用程序能够相互通信的代码接口。就像两个人说话的方式一样——他们之间需要有一种共同的语言;API 是应用程序之间的通用语言。
例如,假设想要构建一个应用程序,根据用户家中的食材向用户推荐食谱。应用需要与杂货网站交互才能访问其食品数据库。此接口允许应用从杂货店网站检索数据,即 API。API 需要适当的身份验证和安全性,以确保仅获得授权访问。数据可以通过具有有据可查的端点的 JSON API 进行交换。适当的 API 测试和监控将有助于发现任何错误和问题。
为什么 API 很重要?- API 允许不同的软件系统无缝通信和共享数据。这是使大多数现代 Web 和移动应用程序能够正常工作的基础。
- API 使开发人员能够重用已构建的功能。例如,通过调用 YouTube API,可以在应用中嵌入视频播放功能,而无需从头开始构建视频流。
- API 显著加快了软件开发速度,使开发人员能够专注于构建独特的产品功能。
- 公共 API 允许开发人员在现有平台上进行构建,从而实现创新。例如,许多新的天气应用程序都是通过允许开发人员访问天气数据 API 来构建的。
- API 允许构建可为数百万用户提供服务的可扩展软件。想象一下,如果每个应用程序都必须构建自己的服务器和基础设施,那么快速扩展是不可能的。但是,通过利用通用 API,应用程序可以成倍地扩展访问和用户群。
简而言之,API 通过使系统能够通信、共享数据、提供对复杂功能的访问并允许在现有平台上进行创新,从而为我们今天使用的大多数应用程序提供支持。
API 如何工作?API 本质上通过两个组件(客户端和服务器)来工作。客户端是需要访问功能的应用程序或系统,而服务器是容纳 API 的系统。
以前面的杂货店应用程序为例。我们的食谱应用程序将是尝试访问杂货网站(即服务器)的客户端。
常见的 API 语言是 REST 和 SOAP。REST近年来因其简单性而变得流行。以下是 REST API 工作原理的高级概述:
- 客户端将 API 请求发送到服务器上的特定 URL 端点。例如,要请求所有包含鸡肉的食谱,客户端可以向 http://grocerystore.com/recipes/chicken 发送 GET 请求。
- 服务器处理这些请求,与底层数据库或软件系统交互,并打包响应。
- 服务器最终发回数据响应,通常采用JSON格式。因此,所有鸡肉食谱都可以作为 JSON 对象发送回去。
- 客户端应用处理此响应,并向用户显示配方,或根据需要使用应用中的数据。
因此,总而言之,客户端应用通过互联网向远程服务器进行 API 调用,远程服务器发回结构化数据,然后可以在客户端应用中显示或操作这些数据。
API 的实际示例- Google Maps API — 这允许任何应用嵌入 Google 地图。它使添加地图功能变得容易,而无需从头开始构建复杂的地图软件。
- Twitter API — 使应用程序能够访问和显示推文和 Twitter 数据,例如关注者数量、个人资料等。这就是 Twitter 客户端和管理应用程序的构建方式。
- Stripe API:— 允许应用和网站轻松接受付款,而无需管理处理付款背后的复杂财务和监管要求。
- Slack API — 支持自动化和构建与 Slack 消息传递平台的自定义集成。可以通过此 API 向应用发送事件通知。
- Darksky Weather API — 提供天气应用程序所依赖的当前和未来天气数据,如降水机会、温度等。
- YouTube API — 允许将 YouTube 视频嵌入到其他应用中并构建自定义 YouTube 客户端。。
- 抽象复杂性 — API 隐藏了“幕后”涉及的所有混乱细节和复杂性。这使开发人员可以轻松使用该功能,而无需从头开始构建所有内容。
- 节省时间和精力 — 利用现有的 API 和代码可以节省大量的开发时间和精力。
- 可重用性 — 一旦 API 被构建并公开共享,任何数量的应用程序都可以利用它,从而实现可重用性。
- 可扩展性 — API 允许轻松扩展到大型用户群,而无需直接处理负载。
- 提供核心功能 — 无论是支付处理、映射、消息传递还是更多功能,API 都提供现成的核心功能。
- 更快的创新 — 公共 API 允许开发人员在现有平台上快速构建,从而推动创新。
- 货币化 — Google 和 Twitter 等公司公开了 API,使他们能够通过进一步增加使用量来通过平台获利。
希望到现在为止,您已经对 API 是什么、为什么它们在软件开发中很重要以及它们的优势有了很好的高层次理解。
API 安全注意事项但是,需要注意的是,API 也存在必须缓解的安全风险。一些关键的 API 安全注意事项包括:
- 身份验证 — 通过实施 OAuth 等身份验证机制来保护 API,以确保只有授权的客户端才能访问它们。
- 访问控制 — 实施适当的访问控制,将 API 访问限制为仅每个客户端所需的功能。
- 加密 — 使用HTTPS并加密所有API通信,以防止在传输过程中窥探数据。
- 速率限制 — 实施速率限制,以防止通过API进行滥用和拒绝服务攻击。
- 输入验证 — 验证所有输入数据,以防止通过 API 破坏服务器的 SQL 注入等攻击。
- 监控 — 跟踪 API 使用情况统计信息、错误和延迟,以掌握性能并快速检测新威胁。
- 文档 — 将安全性直接嵌入到 API 文档中,以确保开发人员从一开始就了解正确的用法。
虽然 API 提供了巨大的价值,但保护它们需要深思熟虑和规划。API 是现代软件应用程序不可或缺的一部分,为关键功能和能力提供支持。了解 API 是当今任何有抱负的开发人员的必修课。