您需要知道的API基础知识都在这里

译文 精选
开发 前端
本文向您介绍了API的基本调用流程、工作原理、不同的架构、类型、开发工具、以及构建实践。

​译者 | 陈峻

审校 | 孙淑娟

API是应用程序编程接口(Application Programming Interface)的缩写,能够起到两个软件组件之间的连接器或中介的作用。此类接口往往通过一组明确的协议,来表示各种原始的请求和响应。API文档可以向开发人员展示请求和响应是如何形成的。简单而言,API能够允许两个应用程序彼此之间实现通信。无论我们在手机上查看天气,还是使用微信,或者在Facebook等应用上收发消息,都会频繁地使用到API。

有关API的数据

  • 自2007年以来,API的使用量已增加了13倍
  • 得益于API,Google、Facebook和Twitter等知名应用,每天都会被调用约50-100亿次
  • Netflix持续使用API向200台设备传输数据流

API的调用流程

当我们在使用应用程序的某项功能时,通常会在后台发生如下情况:

  1. 数据请求被发送到服务器上
  2. 服务器对其进行解析,并理解其请求的含义
  3. 服务器提供必要的响应
  4. 响应被成功地发送回设备

其实,每次在我们要求应用程序提供某些特定的服务响应时,这样的过程都会重复循环一次。

不同的API协议和架构

  • REST:在众多的API架构类型中,表述性状态转移(Representational State Transfer)往往被广为采用。REST API的工作原理是以客户机与服务器的方式,将API的前端与后端区分开来。而且它不会存储任何数据或状态。
  • SOAP:简单对象访问协议(Simple Object Access Protocol)也被广泛用于通过XML创建Web API的场景中。它能够兼容诸如:HTTP、TCP和SMTP等互联网常见的通信协议。由于SOAP易于被扩展,因此开发者能够很容易地用它来编写和添加新的功能。与其他架构相比,SOAP具有高度结构化、严格可控性、以及具有被明确定义的标准等特性。
  • RPC:远程过程调用(remote procedural call)能够被用来调用各种可执行的操作。它非常适合于发送各种参数,以及接收各种相应的响应。

API的类型

根据访问级别和使用范围的不同,API往往可以被分为如下不同的类型。开发人员可以根据自己的要求,进行适当地选择。 

A、伙伴API

在此类API中,对于数据的访问,仅限于那些拥有官方许可证的授权客户端。也就是说,只有那些与提供API的公司有业务关系的调用方,才能使用此类API。开发方对于谁可以访问这些资源,有着较大的控制权。

伙伴API的优势:

  • 业务方可以把更多的注意力放在公司的核心与发展上,而无需迁就开发人员。如果一个开发人员觉得某个问题难以被解决,则可以由另一个开发人员去轻松地搞定。这便是伙伴合作给项目带来的好处。
  • 保留伙伴API政策将有助于集成大量电商软件的不同解决方案,并使得软件能够在瞬息万变的行业中保持最新和强相关。

B、公共API

顾名思义,公共API可供任何外部开发人员或企业使用。对于那些与公众和其他业务组织共享应用和数据的业务结构来说,Public API是理想的选择。

公共API的优势:

公共API不但容易实现,而且能够保证用户只要有互联网连接,就能随时随地使用应用服务。

C、内部API

内部或私有API往往只能让企业在其业务内部连接和访问数据。由于内部API的安全性和身份验证能力相对较弱,因此容易导致数据受到安全威胁。对此,开发者需要逐渐改变它们在安全上的各种部署与安排。

内部API的优势:

由于内部API能够将业务的不同部分连接起来,以提高开发过程中的适应性和灵活性,因此此类API可以让开发人员在较短的时间内,制定和构建新的关联应用。

D、复合API

复合API通常是两到多种API的混合体。由于集成了各类API的长处,因此它往往能够带来更高的速度、更大的灵活性、以及更好的性能。

复合API的优势:

复合API能够在单个调出(callout)中执行多项操作。而且其所需的数据位于调用序列的末端,而无需解析各种响应。因此,它比其他API更受欢迎。

API的工作原理

每个API都是由函数的调用来实现的。而函数调用的任务主要是请求软件去执行某些特定的操作和函数。当用户启动API的调用时,它会通知应用程序去启用API与Web服务器通信,并执行相应的任务。具体而言,每当用户指示软件去执行某些任务、或请求某种信息时,API会以应用程序和Web服务器之间的“桥梁”身份去实现。正如前文所说,我们在日常生活中使用到的,诸如:Facebook登录、PayPal支付、以及Google天气查询等,都是API的典型示例。您可以通过链接-- https://nordicapis.com/5-examples-of-apis-we-use-in-our-everyday-lives/,了解其更多的应用场景。

API开发的工具

既然API的任务是简化和加速软件的开发,那么正所谓“工欲善其事,必先利其器”,让我们来看看三种常见的API开发工具: 

  • Sandbox:作为一种简单的模拟RESTful API,它主要能够降低测试过程中第三方API调用的成本。 
  • Apigee:作为构建应用连接的理想工具,由Google推出的Apigee可以促进应用程序和服务之间的数据传输。
  • APIMatic:对于网站的各种API而言,APIMatic以平台的形式,方便开发人员更加灵活地维护API的各种更新。同时,它也允许开发人员将API描述并转换成诸如:WADL、Swagger、RAML、OAI格式、IO文档、API蓝图、har1.4、以及Postman集合等多种形式。

API的构建实践

API的构建实践,主要体现在如下五个方面:

  1. 安全性:使用基于令牌的身份验证,是构建安全可靠的API的良好实践。它既保证了安全性,又兼顾了用户友好性。
  2. 文件:精心编撰的API文档不但能够降低项目的开发成本,而且可以提高应用的运行效率和实现时间。应用程序开发人员往往需要通过丰富的API支持文档,来详细地了解整个调用与实现过程。
  3. 节流:当涉及到需要重定向流量的溢出、防止DoS(拒绝服务)、以及备份各种API时,我们往往需要通过应用的节流,来有效地实现此类目的。
  4. SDK和代码库:通过向开发团队提供必要的库资源,我们可以加速开发的进程。
  5. 重写HTTP方法:由于一些代理只能支持POST和GET方法,因此我们使用定制的HTTP报头X-HTTP-Method-Override,能够允许RESTful API去重写HTTP的方法。

小结

从Node.js到PHP与ASP.Net的Web开发,无论是简单的Python开发、还是复杂的Java软件,API在每一项技术中都得到了广泛的使用,都能够为从开发到业务的协作铺平道路。只要我们能够根据自己的实际业务需求,合理地构建或修改API,就能够填补异构数字技术之间的鸿沟,提高应用服务的调用效率,进而为业务带来更丰厚的利润。

译者介绍

陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。

原文标题:Everything You Should Know About APIs​,作者:Himanshu Mehra​

责任编辑:华轩 来源: 51CTO
相关推荐

2020-12-23 09:00:00

开发Web工具

2021-12-09 08:16:40

JVM参数系统

2020-06-02 07:00:00

会话安全黑客攻击

2017-08-29 11:21:03

微软

2021-12-27 08:00:00

Kubernetes容器安全

2021-05-17 07:04:07

动态代理面试

2019-09-10 13:38:56

人工智能无人驾驶机器人

2020-08-12 09:32:31

小米MIUI

2021-07-01 09:00:00

安全数字化转型渗透

2019-11-04 09:07:48

DevOps互联网IT

2023-09-11 08:51:23

LinkedList双向链表线程

2021-06-17 13:40:47

区块链比特币公有链

2020-03-18 18:20:19

区块链数字货币比特币

2021-02-01 08:39:26

JTAG接口Jlink

2019-04-24 08:31:43

分布式限流kafka

2019-01-24 08:19:17

云服务多云云计算

2016-03-01 16:14:32

问问应用商店Android Wea

2018-11-28 10:39:01

5G网络运营商

2021-02-23 09:28:48

大数据数据分析

2018-04-26 16:15:02

数据库MySQLMySQL 8.0
点赞
收藏

51CTO技术栈公众号