掌握API基础知识的步骤:
- 了解API的定义:API是应用程序接口,指的是应用程序之间进行通信的一种方式。
- 理解API的作用:API可以让应用程序之间相互交互,共享数据、功能和服务。
- 熟悉API的类型:API可以分为Web API、本地API和第三方API等多种类型。
- 学习API的使用方式:使用API需要了解如何发送请求并获取响应数据,以及如何解析和处理返回的数据。
- 熟悉API的协议和格式:学习API需要了解HTTP、RESTful、JSON和XML等常见的协议和格式。
- 实践API调用:使用API需要实际进行调用实验和开发,以掌握API的使用方法和技巧。
- 学习API安全:API调用需要注意安全性,包括认证、授权等方面,需要学习API的安全管理知识。
API是应用程序接口(Application Programming Interface)的缩写,它提供了一种程序之间相互交流的方式,让不同的应用程序能够互相调用和共享数据。API的作用是让开发者可以更方便地使用其他开发者编写的软件功能。
API可以是基于不同的技术实现的,包括Web API、SOAP API、REST API等等。其中,Web API通常是指基于HTTP/HTTPS协议的API,可以通过URL进行访问和调用;SOAP API则是一种基于XML的Web服务协议,它需要使用SOAP消息进行通信;而REST API则是基于HTTP协议的一种轻量级的Web服务协议,它不需要使用SOAP消息,而是使用简单的HTTP方法来传递数据。
有关API的数据 自2007年以来,API的使用量已增加了13倍
得益于API,Google、Facebook和Twitter等知名应用,每天都会被调用约50-100亿次
Netflix持续使用API向200台设备传输数据流
API的调用流程 当我们在使用应用程序的某项功能时,通常会在后台发生如下情况:
数据请求被发送到服务器上
服务器对其进行解析,并理解其请求的含义
服务器提供必要的响应
响应被成功地发送回设备
其实,每次在我们要求应用程序提供某些特定的服务响应时,这样的过程都会重复循环一次。
不同的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的典型示例。
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的构建实践,主要体现在如下五个方面:
安全性:使用基于令牌的身份验证,是构建安全可靠的API的良好实践。它既保证了安全性,又兼顾了用户友好性。
文件:精心编撰的API文档不但能够降低项目的开发成本,而且可以提高应用的运行效率和实现时间。应用程序开发人员往往需要通过丰富的API支持文档,来详细地了解整个调用与实现过程。
节流:当涉及到需要重定向流量的溢出、防止DoS(拒绝服务)、以及备份各种API时,我们往往需要通过应用的节流,来有效地实现此类目的。
SDK和代码库:通过向开发团队提供必要的库资源,我们可以加速开发的进程。
重写HTTP方法:由于一些代理只能支持POST和GET方法,因此我们使用定制的HTTP报头X-HTTP-Method-Override,能够允许RESTful API去重写HTTP的方法。
小结 从Node.js到PHP与ASP.Net的Web开发,无论是简单的Python开发、还是复杂的Java软件,API在每一项技术中都得到了广泛的使用,都能够为从开发到业务的协作铺平道路。只要我们能够根据自己的实际业务需求,合理地构建或修改API,就能够填补异构数字技术之间的鸿沟,提高应用服务的调用效率,进而为业务带来更丰厚的利润。