应用程序编程接口(API)允许计算机程序员访问网络上发布的软件模块和服务的功能。api在应用程序开发和网络编程中扮演着重要的角色。了解更多API是什么以及为什么开发人员使用它们。
什么是API?
API定义数据结构和子例程调用,用新特性扩展现有应用程序。它们也被用于在其他软件组件之上构建新的应用程序。在网络上,api使得将应用程序与谷歌Maps和Facebook等服务整合成为可能。
一些api支持网络编程。网络编程是一种软件开发,用于通过计算机网络(包括互联网)连接和通信的应用程序。网络api为协议和可重用软件库提供入口点。网络api支持web浏览器、web数据库和许多移动应用程序。它们被许多编程语言和操作系统广泛支持。
api和套接字编程
传统的网络编程遵循一个客户机-服务器模型。用于客户机-服务器联网的主要api在套接字内置在操作系统中的库。例如,Berkeley sockets和Windows套接字(Winsock) api多年来一直是套接字编程的两个主要标准。
远程过程调用
RPCapi通过添加应用程序调用远程设备上的函数(而不仅仅是向它们发送消息)的功能,扩展了基本的网络编程技术。随着web上的爆炸式增长,XML-RPC已经成为RPC的一种流行机制。
简单对象访问协议(SOAP)
SOAP是在20世纪90年代末作为一种网络协议使用XML作为其消息格式和超文本传输协议(HTTP)作为其传输。SOAP产生了一批忠实的web服务程序员,并被广泛用于企业应用程序。
具象状态传输(REST)
REST是另一个支持web服务的编程模型。与SOAP一样,REST api使用HTTP,但REST应用程序通常使用Javascript对象符号(JSON)而不是XML。REST和SOAP在状态管理和安全方面的方法不同,这两个方面都是网络程序员需要考虑的关键问题。移动应用程序可能使用也可能不使用网络api,但经常使用REST的应用程序。
api的未来
SOAP和REST继续被积极地用于新web服务的开发。作为一种比SOAP更新的技术,REST更有可能演进并产生API开发的其他分支。
操作系统也已经发展到支持许多新的网络API技术。例如,在Windows 10等现代操作系统中,套接字仍然是一个核心API,在RESTful风格的网络编程之上提供了HTTP和其他附加支持。
正如计算机领域经常发生的情况一样,新技术的推出速度往往快于旧技术的淘汰速度。寻找有趣的新API开发,特别是在云计算以及物联网(IoT),其中设备的特性及其使用模式与传统的网络编程环境不同。