当你与程序员相处时,你可能听说过API以及它们如何用于执行某些任务和获取数据。但它们到底是什么,为什么会被创造出来?
1. 什么是API?
API代表应用程序编程接口,是不同程序以各种方式协同工作的方式。
API不是一种编程语言。API函数类似于其他常规函数。
API已经存在很长时间,被用于多种应用程序和软件。最新一代的API——Web API可以用于任何系统(操作系统、数据库、基于网络的系统、应用程序库等),甚至是计算机硬件。
让我们从一个非常简单、与IT无关的例子开始。当你去餐厅点餐时,你会与服务员交流。你可以点菜和饮料,询问菜单,要求结账并付款。
在这个例子中,服务员就像一个守卫或盾牌,保护你免受幕后复杂事务的干扰。你不必担心炉灶、烤箱、餐具、库存管理或饮料供应。他是你和餐厅所有服务之间的接口,为你提供与餐厅沟通的方式,同时保护你免受幕后复杂性的困扰。
因此,服务员可以被看作是餐厅的API。通过这个例子,你直观地理解了API为何有用。
2. API如何工作?
在餐厅的例子中,服务员可以为你提供订单状态信息,而你无需亲自进厨房。
API本质上是我们应用程序的一个入口。通过这个入口,其他第三方应用程序可以访问我们构建的所有数据和功能,而无需我们提供任何定制代码。
假设这个定制应用想访问我们构建的一些数据或功能。它将发送API请求。API请求以简单的HTTP消息形式发送。
我们可以使用一些常见的HTTP方法:Post、Get、Put、Patch、Delete。这些方法对应CRUD操作:创建(Create)、读取(Read)、更新(Update)、删除(Delete)。
-
Post方法在Web应用上创建内容
-
Get请求读取应用中的信息
-
Put更新应用中的信息
-
Patch也更新应用信息,区别是Put会替换信息,而Patch只修改部分信息
-
Delete删除信息
在此例中,我们使用HTTP Get消息请求信息。
API请求发送后,应用将发送响应。响应通常以JSON或XML格式返回给定制应用。
这就是API工作的基本原理。为了更好理解,我们用更贴近生活的例子。
例如,我们有一个天气应用,拥有遍布全球的庞大气象站网络。我们的定制应用是一个手机应用。对大多数人来说,建立全球气象站网络并整合所有信息几乎不可能。但这正是API的优势。任何人都可以开发手机应用,然后使用API从已有的天气应用请求数据。我们的手机应用向天气应用发送API Get请求。以下是使用Open Weather Map API的请求示例。
我们有一个简单的URL:
https://api.openweathermap.org/data/2.5/weather?q={城市名}&appid={API密钥}
此URL包含若干字段,一个字段是应用输入城市名,另一个是API密钥。API密钥通常需要,以便应用跟踪发送请求的数量,并确保你不会发送垃圾请求。
应用收到请求后,会返回请求的数据。我们可以编程手机应用,将信息显示为美观的用户界面。
3. API类型
按信息技术子行业分类,API包括:
3.1. Web API
非常常见,许多大型网站设计Web应用,配备API系统平台,帮助你连接、获取或更新数据。像Facebook、Google等大网站都提供API系统。绝大多数基于Web的API遵循RESTful标准,数据格式通常为JSON、XML或其他。
3.2. 操作系统API
Windows和Linux提供API文档,指定函数、方法和连接协议,程序员据此创建与操作系统交互的应用软件。
3.3. 应用程序库(框架)API
API描述并指定库提供的操作。API可能有多种实现方式,也允许用一种语言编写的程序使用另一种语言编写的库。
按访问权限分类,API有:
3.4. 开放API
公开,可无限制访问。
3.5. 合作伙伴API
需要特定权限或许可访问。
3.6. 内部API
仅限内部系统(如公司、组织)使用。各内部开发团队用它们改善专属员工的产品或服务。
4. API协议和架构
-
REST (RESTful API): 代表表现层状态转移,使用轻量级JSON格式传输数据。大多数公共API采用此协议,因其性能快、可靠且易扩展。
-
SOAP (简单对象访问协议): 出现于1990年代末,使用XML传输数据,要求严格规则和高级安全性,带宽需求较大。
-
XML-RPC: 使用特定XML格式,客户端通过HTTP请求调用服务器实现的XML-RPC,接收HTTP响应。
-
JSON-RPC: 类似XML-RPC,但使用JSON格式。客户端通常是调用远程系统单一方法的软件。
5. 结论
总体而言,API是许多行业企业的重要工具。API让公司有机会扩展规模,推动创新,触达更广泛的用户。正如Forbes所说,“胜负越来越依赖于他们如何连接外部应用、设备和服务”,从技术角度看,API实现了这种连接。
正如所见,API推动了以共享服务为核心的新一波创新。Hidemyacc软件拥有公开API,发布于网络并免费共享,允许网络服务所有者为用户提供通用访问权限。
立即下载Hidemyacc,开始7天免费试用!
如果有任何问题、意见或建议,欢迎通过Telegram、Skype或Facebook Messenger联系我们。