api的基础知识(API简介二)
API简介(一)一文中,介绍了使用API的目的、设计、发行政策以及公共API的含义,本篇主要介绍API的用法,从库和框架、操作系统、远程API、Web API四个方面展开,下面我们就来说一说关于api的基础知识?我们一起去了解并探讨一下这个问题吧!
api的基础知识
API简介(一)一文中,介绍了使用API的目的、设计、发行政策以及公共API的含义,本篇主要介绍API的用法,从库和框架、操作系统、远程API、Web API四个方面展开。
库和框架API通常与软件库有关。当库是这套规则的“实际执行”时,API描述并规定了“预期行为”(一种规范)。
单个API可以采用共享同一编程接口的不同库的形式,具有多种实现方式(或抽象,无)。
将API与实现分开,可以允许以一种语言编写的程序使用以另一种语言编写的库。例如,由于Scala和Java编译为兼容的字节码,因此Scala开发人员可以利用任何Java API。
API的使用取决于所涉及的编程语言的类型。诸如Lua之类的过程语言的API可以主要由执行代码,操纵数据或处理错误的基本例程组成,而诸如Java之类的面向对象语言的API则可以提供类及其类方法的规范。
语言绑定也是API。通过将一种语言的特性和功能映射到以另一种语言实现的接口,语言绑定允许在以一种语言进行开发时使用另一种语言编写的库或服务。诸如SWIG和F2PY(一种从Fortran到Python的接口生成器)之类的工具可简化此类接口的创建。
API也可以与软件框架相关:框架可以基于实现了多个API的多个库,但是与正常使用API不同,对框架内建行为的访问是通过使用新类扩展其内容,从而实现插入框架本身。
而且,整个控制程序流程可以通过控制反转或类似的机制而不受调用者的控制,从而不受框架的控制。
操作系统API可以指定应用程序和操作系统之间的接口。 例如,POSIX指定一组通用API,这些API旨在使为POSIX兼容操作系统编写的应用程序能够为另一个POSIX兼容操作系统编译。
Linux和Berkeley软件发行版是实现POSIX API的操作系统的示例。
Microsoft已显示出对向后兼容API的坚定承诺,尤其是在其Windows API(Win32)库中,因此较旧的应用程序可以在较新版本的Windows上使用称为“兼容模式”的特定于可执行文件的设置。
API与应用程序二进制接口(ABI)的不同之处在于,API是基于源代码的,而ABI是基于二进制的。例如,POSIX提供API,而Linux Standard Base提供ABI。
远程API远程API允许开发人员通过协议(特定于通信的标准)来操纵远程资源,该协议允许不同的技术一起工作,而不论语言或平台如何。例如,Java数据库连接API允许开发人员使用相同的功能集查询许多不同类型的数据库,而Java远程方法调用API,使用Java远程方法协议来允许调用可远程操作但在本地运行的功能开发人员。
因此,远程API对于维护面向对象程序设计中的对象抽象很有用。在代理对象上本地执行的方法调用,使用远程协议在远程对象上调用相应的方法,并获取要在本地用作返回值的结果。
代理对象的修改也将导致远程对象的相应修改。
Web APIWeb API是企业和使用其资产的应用程序之间进行交互的已定义接口,这也是服务水平协议(SLA),用于指定功能提供者并为其API用户公开服务路径或URL。API方法是一种体系结构方法,它围绕为服务于不同类型消费者的不同应用程序提供一组服务程序接口的方法。
当在Web开发的上下文中使用API时,通常将其定义为一组规范,例如超文本传输协议(HTTP)请求消息以及响应消息的结构定义,通常以可扩展标记语言(XML))或JavaScript对象表示法(JSON)格式。例如运输公司的API,可以将其添加到以电子商务为中心的网站上,以方便订购运输服务,并自动包括当前的运输价格,而站点开发人员不必在网络数据库中输入运输者的价格表。
尽管 “Web API” 在历史上实际上是Web服务的代名词,但最近的趋势(所谓的Web 2.0)已从基于简单对象访问协议(SOAP)的Web服务和面向服务的体系结构(SOA)转向更直接的表示状态转移(REST)样式的Web资源和面向资源的体系结构(ROA)。
这种趋势的一部分与语义Web向资源描述框架(RDF)的发展有关,RDF是一种促进基于Web的本体工程技术的概念。Web API允许将多个API组合到称为mashup的新应用程序中。
在社交媒体领域,Web API使Web社区可以促进在社区和应用程序之间共享内容和数据。这样,可以将在一个地方动态创建的内容发布并更新到Web上的多个位置。例如,Twitter的REST API允许开发人员访问Twitter的核心数据,而Search API为开发人员提供了与Twitter搜索和趋势数据进行交互的方法。
注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您13720658862,给您带来困扰,深感抱歉。
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com