应用程序编程接口

目录

  1. 1 应用程序编程接口
  2. 2 目的
  1. 3 用法
  2. 库和框架
  1. 操作系统
  2. 远程API
  1. Web API
  2. 4 应用程序编程接口设计

    应用程序编程接口

    应用程序编程接口(API)是计算接口,其限定多个软件中介之间的相互作用。它定义了可以进行的调用或请求的类型,如何进行调用,应使用的数据格式,要遵循的约定等。它还可以提供扩展机制,以便用户可以通过各种方式扩展现有功能。在不同程度上。应用程序编程接口API可以是完全自定义的,特定于组件,也可以基于行业标准进行设计以确保互操作性。通过信息隐藏,API支持模块化编程,从而允许用户独立于实现使用接口。

    目的

    在构建应用程序时,API(应用程序编程接口)通过抽象化底层实现并仅公开开发人员需要的对象或动作来简化编程。电子邮件客户端的图形界面可能会为用户提供执行获取和突出显示新电子邮件的所有步骤的按钮,而用于文件输入/输出的应用程序编程接口可能会为开发人员提供一种将文件从一个位置复制到另一个位置的功能,而无需要求开发人员了解幕后发生的文件系统操作。

    应用程序编程接口

    用法

    库和框架

    API通常与软件库有关。该应用程序编程接口描述并规定了“预期行为”(一种规范),而该库是这套规则的“实际实现”。

    单个API可以采用共享同一编程接口的不同库的形式,具有多种实现(或者没有一种抽象)。

    将API与实现分开,可以允许以一种语言编写的程序使用以另一种语言编写的库。例如,由于Scala和Java编译为兼容的字节码,因此Scala开发人员可以利用任何Java API。

    应用程序编程接口的使用取决于所涉及的编程语言的类型。诸如Lua之类的过程语言的API 可以主要由执行代码,处理数据或处理错误的基本例程组成,而诸如Java之类的面向对象语言的API则可以提供类及其类方法的规范。

    语言绑定也是应用程序编程接口。通过将一种语言的特性和功能映射到以另一种语言实现的接口,语言绑定允许在以另一种语言进行开发时使用以一种语言编写的库或服务。等工具SWIG和F2PY,一个的Fortran -到- 的Python接口发生器,便于这样的接口的创建。

    应用程序编程接口也可以与软件框架相关:框架可以基于实现了多个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 API

    Web API是企业和使用其资产的应用程序之间进行交互的已定义接口,这也是服务水平协议(SLA),用于指定功能提供者并为其API用户公开服务路径或URL。应用程序编程接口方法是一种体系结构方法,它围绕为服务于不同类型消费者的不同应用程序提供一组服务程序接口的方法。

    当在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搜索和趋势数据进行交互的方法。

    应用程序编程接口设计

    API的设计对其使用有重大影响。信息隐藏的原理将编程接口的作用描述为通过隐藏模块的实现细节来实现模块化编程,从而使模块用户无需了解模块内部的复杂性。因此,API的设计试图仅提供用户期望的工具。编程接口的设计代表了软件体系结构的重要组成部分,即复杂软件的组织。


    应用程序编程接口

    相关推荐

    归纳逻辑编程

    目录 1 归纳逻辑编程 2 非正式意义和解决问题归纳逻辑编程归纳逻辑编程(ALP)是一个高级知识表示框架,可用于基于归纳推理以声明方式解决问题。它通过允许某些谓词未完全定义来扩展常规逻辑编程。解决问题的方法是通过推导这些可绑架谓词上的假设(归纳假设)来解决问题。这些问题可以是需要解释的观察结果(如经典绑架)或要实现的目标(如常规逻辑编程)。它可以用来解决诊断... (继续浏览)

    量子克隆

    目录 1 什么是量子克隆 2 量子克隆机的类型 ▪ 通用量子克隆 ▪ 非对称量子克隆 ▪ 概率量子克隆 3 近似量子克隆的应用 ▪ 离散量子系统中的克隆 ▪ 量子克隆攻击 ▪ 核磁共振 ▪ 受激发射 ▪ 远程克隆什么是量子克隆量子克隆是一个过程,它需要一个任意的,未知的量子状态并进行精确的复制,而不会以任何方式改变原始状态。如无克隆定理所示,量子力学定律禁止... (继续浏览)

    三菱電梯

    目录 1 三菱電梯 2 三菱電梯生產基地 3 三菱電梯子公司三菱電梯三菱電梯是日本的知名電器公司,三菱電梯主要業務有,生產電梯、自動扶梯、自動人行道、螺旋形自動扶梯和食物升降機自1931年以來,是日本xxx的電梯製造商和沿xxx的電梯製造商在世界。它還在所有日本公司的電梯市場中擁有xxx的國際業務。 三菱電梯生產基地三菱目前位於日本東京千代田。位於日本... (继续浏览)

    越南面条

    目录 1 越南面条 2 越南面条按成分分类 3 面条菜 ▪ 热面条汤 ▪ 干面条菜 ▪ 热面条卷 ▪ 冷宣纸卷 ▪ 热面条越南面条越南面条包括许多类型的面条。这些通常在汤中食用,但也可以直接食用。 越南面条按成分分类越南面条有新鲜(tươi)或干(khô)形式。Bánhcanh-由米粉和木薯粉或小麦粉的混合物制成的粗面条;外观类似于乌冬面,但实质上不相... (继续浏览)

    新加坡美食

    目录 1 新加坡美食 2 新加坡海鲜 3 新加坡水果 4 新加坡甜品 ▪ 冰淇淋三明治 5 新加坡饮料新加坡美食新加坡美食涵盖的各种要素饮食文化新加坡,从多个来源的族群已经通过这个世界性的政治、经济和社会的变化百年来不断发展的城市国家。 影响力包括马来人、华人和印度人的美食,以及印度尼西亚、土生华人和西方的传统美食(尤其是英、葡风味的欧亚混血菜,被称为... (继续浏览)

    音频滤波器

    目录 1 音频滤波器 2 类型 ▪ 低通 ▪ 高通 ▪ 带通 ▪ 全部通过 3 应用音频滤波器音频滤波器是依赖于频率的放大器电路,在工作音频范围,0Hz到超过20千赫。音频滤波器可以放大,通过或衰减某些频率范围。存在针对不同音频应用的多种类型的滤波器,包括高保真立体声系统、音乐合成器、音效、扩声系统、乐器放大器和虚拟现实系统。 类型低通低通滤波器通过低... (继续浏览)

    模拟滤波器

    目录 1 什么是模拟滤波器 2 其他值得注意的发展和应用 ▪ 机械过滤器 ▪ 分布式元素过滤器 ▪ 横向过滤器 ▪ 匹配的过滤器 ▪ 控制系统过滤器 3 现代实践什么是模拟滤波器模拟滤波器是信号处理的基本组成部分,广泛用于电子学中。当中其许多应用的音频信号施加到前分离低音、中音和高音扬声器 ; 将多个电话对话合并和分离到一个通道上;在无线电接收器中选择选定的... (继续浏览)

    热循环仪

    目录 1 什么是热循环仪 ▪ 历史 2 现代创新什么是热循环仪热循环仪,是一个实验室最常用的的AMPLIFY段装置DNA通过聚合酶链式反应(PCR)。热循环仪也可以在实验室中使用,以促进其他对温度敏感的反应,包括限制酶消化或快速诊断。该设备有一个散热块带有孔的地方可以插入容纳反应混合物的管。然后,循环器以不连续的预编程步骤升高和降低模块的温度。 历史最... (继续浏览)

    响应式计算机辅助设计

    目录 1 响应式计算机辅助设计 2 相关概念 3 目前的工作响应式计算机辅助设计响应式计算机辅助设计(也简化为响应式设计)是一种计算机辅助设计(CAD)的方法,该方法利用现实世界中的传感器和数据来修改三维(3D)计算机模型。该概念通过虚拟世界和物理世界的模糊化而与电子物理系统相关,但是特别适用于生产之前对象的初始数字设计。 该过程始于设计人员使用具有参... (继续浏览)

    分布式发电

    目录 1 分布式发电 2 技术 ▪ 热电联产 ▪ 太阳能 ▪ 风力 3 与网格集成 4 缓解DG集成的电压和频率问题 5 独立的混合发电系统分布式发电分布式发电,也称为分布式能源,即现场发电(OSG)或区域/分散式能源,是指通过各种小型的,与电网连接或与配电系统相连的设备进行的发电和存储,称为分布式能源资源(DER)。 常规电站,如煤、气以及核动力电厂... (继续浏览)

    网络物理系统

    目录 1 网络物理系统 ▪ 概述 2 移动网络物理系统 3 设计网络物理系统网络物理系统(CPS)是一种计算机系统,其中的机制由基于计算机的算法控制或监视。在网络物理系统中,物理和软件组件紧密地交织在一起,能够在不同的时空尺度上运行,展现出多种不同的行为方式,并以随环境变化的方式彼此交互。网络物理系统的示例包括智能电网、自动驾驶汽车系统、医疗监控、工业控制系... (继续浏览)

    虚拟电厂

    目录 1 什么是虚拟电厂 2 虚拟发电 3 辅助服务 4 能源贸易 5 欧洲虚拟电厂 6 澳大利亚虚拟电厂什么是虚拟电厂虚拟电厂(VPP)是一个基于云的分布式电源的植物,聚集的异构能力分布式能源(DER)提高发电的目的,以及买卖或出售电力的电力市场。虚拟电厂的示例存在于美国、欧洲和澳大利亚。 虚拟发电虚拟电厂是一种集成了多种类型的电源以提供可靠的整体电... (继续浏览)

    OpenWSN

    目录 1 OpenWSNOpenWSNOpenWSN是在加利福尼亚大学伯克利分校创建的一个项目,在INRIA和加泰罗尼亚开放大学(UOC)进行了扩展,旨在建立一个完整的受限网络的基于开放标准和开源的实现。无线传感器网络和物联网的协议栈。OpenWSN的根是基于时隙时隙跳变概念的,实施IEEE 802.15.4e TSCH 的确定性MAC层(TSCH)。 ... (继续浏览)

    移动无线传感器网络

    目录 1 移动无线传感器网络 2 挑战 3 标准 4 拓扑 5 路由 6 中等访问控制 7 验证 8 应用移动无线传感器网络移动无线传感器网络(MWSN)可以简单地定义为一个无线传感器网络(WSN),其中传感器节点是移动的。与它们的前身相比,移动无线传感器网络是一个较小的新兴研究领域。移动无线传感器网络比静态传感器网络具有更多的通用性,因为它们可以部署在任何... (继续浏览)

    自动车牌识别

    目录 1 自动车牌识别 2 其他名称 3 组件 ▪ 其他用途自动车牌识别自动车牌识别(ANPR)是一项在图像上使用光学字符识别以读取车辆牌照以创建车辆位置数据的技术。它可以使用现有的闭路电视,道路执法摄像机或专门为此任务设计的摄像机。自动车牌识别被全世界的警察用于执法目的,包括检查车辆是否已注册或获得许可。它也用于按使用付费的道路上的电子收费 作为对交通活动... (继续浏览)

    自动车辆定位

    目录 1 自动车辆定位 2 应用 3 区分自动车辆位置和事件激活的跟踪系统 4 自动车辆定位的特殊应用自动车辆定位自动车辆定位,是一种自动确定和传输车辆地理位置的方法。然后可以由车辆跟踪系统收集来自一个或多个车辆的该车辆位置数据。管理车辆行驶概述。截至2017年,GPS技术已达到使发射设备小于人的拇指大小的能力,能够在电池充电之间运行6个月或更长时间,易于与... (继续浏览)

    汽车导航系统

    目录 1 汽车导航系统 2 汽车导航技术 ▪ 导航数据标准(NDS) ▪ 媒体 ▪ 实时数据 ▪ 集成和其他功能 ▪ 原始工厂设备 ▪ 短信汽车导航系统汽车导航系统是部分汽车控制或第三方插件用于查找在汽车的方向。它通常使用卫星导航设备获取其位置数据,然后将其与道路上的位置相关联。当需要指示时,可以计算路线。即时交通信息可用于调整路线。 由于来自城市峡谷... (继续浏览)

    智能警报

    目录 1 什么是智能警报 2 智能警报发展 3 智能警报概述 4 智能警报识别什么是智能警报智能警报是由用户的智能手机控制的DIY智能家庭安全系统。该系统和设备由位于加利福尼亚州桑尼维尔的初创公司iSmart Alarm,Inc设计和制造。该系统使用连接到家庭路由器的集线器,允许用户控制家庭安全和家庭自动化设备,包括多个无线设备。用户可以对系统进行布防和撤防... (继续浏览)

    铰接式软机器人

    目录 1 铰接式软机器人 2 特征与设计 3 人机交互中的安全性 4 弹性 5 性能和能源效率铰接式软机器人铰接式软机器人是具有软硬部分的机器人,其灵感来自脊椎动物的肌肉骨骼系统-从爬行动物到鸟类再到哺乳动物再到人类。顺应性通常集中在致动器,传动装置和关节(对应于肌肉、肌腱和关节)上,而结构稳定性则通过刚性或半刚性连接(对应于脊椎动物的骨骼)来提供。 ... (继续浏览)

    残疾机器人

    目录 1 残疾机器人 2 残疾机器人研究 3 儿童 4 小工具 ▪ 轮椅 ▪ 跑步机残疾机器人残疾机器人是机器人旨在帮助人们谁有身体残疾与妨碍日常任务。创建此类机器人的专业领域称为“残疾机器人”。 事实证明,残疾机器人可以帮助中风康复的人和因受伤而影响其日常工作的人。残疾机器人研究1988年,美国国家残疾人与康复研究所(NIDRR)向高拉德大学授予了“... (继续浏览)