API(应用程序接口)是一套规则,它使不同的软件能够相互通信。你可以把它想象成一个菜单:你的应用程序可以“点单”数据或操作,而API会准确地告诉“厨房”(即服务端)该“烹饪”什么,以及如何将结果“端上桌”。
API 规范了请求的发送方式和响应的返回方式,因此即使不同系统由不同的团队、公司开发,或使用不同的编程语言编写,也能可靠地协同工作。
从技术实现层面来看,API 定义了端点(可调用的地址)、可用的方法(如用于获取数据的 GET 或用于发送数据的 POST)、数据发送的格式(通常为 JSON),以及应返回的内容(数据以及状态码,例如表示“成功”的 200 或表示“未找到”的 404)。这种可预测性正是 API 的核心所在。
严格来说,虽然可以不使用 SDK 直接调用 API,但使用 SDK 既能节省时间,又能减少出错。
是的,有几种风格,每种都有其优缺点:
通常来说,是的。与其自己从头构建所有功能,API 允许你直接集成支付、地图、电子邮件、搜索、分析、人工智能等功能。这不仅能节省工程开发时间、提高可靠性(服务提供商会持续更新其服务),还能让你的团队专注于打造产品的独特之处。
权衡之处:你会继承自服务提供商的调用频率限制、定价以及正常运行时间的依赖关系。如果你的产品离不开该 API,请规划好冗余方案。
经常如此。许多 API 都需要身份验证,以便提供商识别您的身份,并据此授予权限和实施速率限制。常见的方法包括:
尽可能不要将密钥和令牌放在公共仓库和客户端代码中。
其实不然。对于许多 API 来说,网页浏览器、curl 或任何 HTTP 客户端都能胜任。开发人员通常会使用 Postman 之类的工具或语言内置库来发送请求、检查响应并保存示例。对于生产环境中的应用程序,则需要使用所用编程语言的 HTTP 库或服务提供商的 SDK。
几乎所有现代应用都离不开它:移动应用调取用户资料、“通过 Google/Apple 登录”、网店处理支付、智能家居设备同步、仪表盘调取分析数据,甚至你的天气小工具也是如此。只要软件在交换数据,背后很可能就有一套 API 在运作。