【推荐阅读】
浅谈linux 内核网络 sk_buff 之克隆与复制
深入linux内核架构--进程&线程
了解Docker 依赖的linux内核技术
API代表“应用程序编程接口”。API 是一组命令、函数、协议和对象,程序员可以使用它们来创建软件或与外部系统交互。它为开发人员提供了用于执行常见操作的标准命令,因此他们不必从头开始编写代码。
应用程序编程接口 (API) 是程序员用来开发软件或促进不同系统之间交互的一组协议、例程、函数和/或命令。API 可用于桌面和移动使用,通常可用于编程 GUI(图形用户界面)组件,以及允许软件程序从另一个程序请求和提供服务。
API 是一组定义的规则,用于解释计算机或应用程序如何相互通信。API 位于应用程序和 Web 服务器之间,充当处理系统之间数据传输的中间层。
API 的工作原理如下:
**客户端应用程序启动 API 调用 ** 来检索信息 — 也称为 请求 。此请求通过 API 的统一资源标识符 (URI) 从应用程序处理到 Web 服务器,并包括请求动词、标头,有时还包括请求正文。
收到有效请求后 ,API 会调用外部程序或 Web 服务器。
服务器 ** 使用请求的信息向 API发送* 响应*** 。
**API 将数据传输 ** 到初始请求应用程序。
虽然数据传输会因所使用的 Web 服务而异,但请求和响应的过程都是通过 API 进行的。用户界面是为人类设计的,而 API 是为计算机或应用程序设计的。
在发布政策方面,API 可以是私有的、合作伙伴的和公共的。
私有 API(内部API) 。内部 API 是对外部用户隐藏的应用程序编程接口。这些私有 API 对公司外部的用户不可用,而是旨在提高不同内部开发团队之间的生产力和沟通。
合作伙伴 API 。合作伙伴 API 是向战略业务合作伙伴公开或由战略业务合作伙伴公开的应用程序编程接口。通常,开发人员可以通过公共 API 开发人员门户以自助服务模式访问这些 API。尽管如此,他们仍需要完成入职流程并获取登录凭据才能访问合作伙伴 API。
公共 API。 也称为面向开发人员或外部,这些 API 可供任何第三方开发人员使用。公共 API 程序可以提高品牌知名度并在正确执行时获得额外的收入来源。
有两种类型的公共 API——开放(免费)和商业 API。开放 API 定义表明此类 API 的所有功能都是公开的,可以在没有限制性条款和条件的情况下使用。例如,可以构建使用 API 的应用程序,而无需 API 供应商的明确批准或强制许可费用。该定义还指出 API 描述和任何相关文档必须公开可用,并且可以自由使用 API 来创建和测试应用程序。
商业 API 用户按现收现付方式支付订阅费或使用 API。发行商中一种流行的方法是提供免费试用,因此用户可以在购买订阅之前评估 API。
API 可以根据它们设计的系统进行分类。
数据库 API。 数据库 API 支持应用程序和数据库管理系统之间的通信。开发人员通过编写查询来访问数据、更改表等来处理数据库。例如,Drupal 7 数据库 API允许用户为不同的数据库编写统一的查询,包括专有和开源(Oracle、MongoDB、PostgreSQL、MySQL、CouchDB) ,和 MSSQL)。
操作系统 API。 这组 API 定义了应用程序如何使用操作系统的资源和服务。每个操作系统都有自己的一组 API,例如,Windows API或 Linux API(内核-用户空间 API和内核内部 API)。
远程 API。 远程 API 定义了在不同机器上运行的应用程序的交互标准。换句话说,一个软件产品访问位于请求它们的设备之外的资源,这解释了名称。由于两个远程应用程序通过通信网络(尤其是 Internet)连接,因此大多数远程 API 都是基于 Web 标准编写的。Java 数据库连接 API和Java 远程方法调用 API是远程应用程序编程接口的两个示例。
Web API。 这个 API 类是最常见的。Web API 提供机器可读的数据和功能在代表客户端-服务器架构的基于 Web 的系统之间传输。这些 API 主要使用超文本传输协议 (HTTP) 传递来自 Web 应用程序的请求和来自服务器的响应。
随着 Web API 使用的增加,已经开发了某些协议来为用户提供一组定义的规则,这些规则指定了可接受的数据类型和命令。实际上,这些 API 协议促进了标准化的信息交换:
SOAP (简单对象访问协议)是一种使用 XML 构建的 API 协议,使用户能够通过 SMTP 和 HTTP 发送和接收数据。使用 SOAP API,可以更轻松地在不同环境中运行或以不同语言编写的应用程序或软件组件之间共享信息。
XML-RPC 是一种依赖特定格式的 XML 来传输数据的协议,而 SOAP 使用专有的 XML 格式。XML-RPC 比 SOAP 更古老,但更简单,并且相对轻量,因为它使用的带宽最少。
JSON-RPC 是一种类似于 XML-RPC 的协议,因为它们都是远程过程调用 (RPC),但是这个协议使用 JSON 而不是 XML 格式来传输数据。这两种协议都很简单。虽然调用可能包含多个参数,但它们只期望一个结果。
REST (Representational State Transfer) 是一套 Web API 架构原则,这意味着没有官方标准(与有协议的标准不同)。要成为 REST API(也称为 RESTful API),接口必须遵守某些架构约束。可以使用 SOAP 协议构建 RESTful API,但这两种标准通常被视为相互竞争的规范。
无论创建或扩展软件产品 API 提供了多少机会,如果开发人员不了解如何使用它,它仍然是一段无法使用的代码。以易于理解的方式解释如何有效使用和集成 API 的精心编写和结构化的 API 文档将使开发人员高兴并渴望向同行推荐 API。
该API文档是与关于API,包括函数,类,返回类型,以及参数的所有所需信息的参考手册。
许多内容元素可以制作良好的文档,例如:
快速入门指南
认证信息
每个 API 调用(请求)的解释
每个请求和返回的示例以及响应描述、错误消息等。
流行的编程语言(如 Python、Java、JavaScript 或 PHP)的代码示例;
SDK 示例(如果 SDK 可用)说明如何访问资源等。
由于 API 允许公司在保持安全和控制的同时开放对其资源的访问,因此它们已成为现代业务的一个重要方面。以下是您可能会遇到的一些流行的应用程序编程接口示例:
通用登录: 一个流行的 API 示例是使人们能够使用他们的 QQ、或 微信个人资料登录详细信息登录网站的功能。这个方便的功能允许任何网站利用来自更流行服务之一的 API 来快速验证用户身份,从而节省他们为每个网站服务或新会员设置新配置文件的时间和麻烦。
**第三方支付处理: ** 例如,您在外贸电子商务网站上看到的现在无处不在的“Pay with PayPal”功能是通过 API 工作的。这允许人们在不暴露任何敏感数据或向未经授权的个人授予访问权限的情况下在线支付产品。
**旅行预订比较:** 旅行预订网站汇总了数千个航班,展示了每个日期和目的地的最便宜的选择。这项服务是通过 API 实现的,这些 API 使应用程序用户可以访问有关酒店和航空公司可用性的最新信息。通过自动交换数据和请求,API 大大减少了检查可用航班或住宿所需的时间和精力。
**百度地图: ** 一个好的 API 最常见的例子之一是百度地图服务。除了显示静态或交互式地图的核心 API 外,该应用程序还利用其他 API 和功能为用户提供方向或兴趣点。通过地理定位和多个数据层,您可以在绘制旅行路线或跟踪移动中的物品(例如送货车辆)时与 Maps API 进行通信。
原文作者:kewenba
原文地址:https://www.kewenba.com/4686.html(版权归原文作者所有,侵权联系删除)