API(Application Programming Interface,应用程序接口),一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
API主要提供通用功能集。API同时也是一种中间件,为各种不同平台提供数据共享。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。
扩展资料
应用程序接口原理
在数据封装时,网络分层中的每个层相互之间会用接口进行交互并提供服务,其中应用层与用户之间的接口称之为应用程序接口(API,Application Programming Interface)。
API实际上是一种功能集合,也可说是定义、协议的集合,无论是那种集合,它的实质都是通过抽象为用户屏蔽实现上的细节和复杂性。
从用户角度看应用程序接口,表现为一系列API函数,用户可以使用这些函数进行网络应用程序开发。从网络角度看,应用程序接口给用户提供了一组方法,用户可以使用这组方法向应用层发送业务请求、信息和数据,网络中的各层则依次响应,最终完成网络数据传输。
参考资料来源:百度百科-应用程序接口
参考资料来源:百度百科-api
虽然API和SOA有类似的业务和技术目标,但许多API的支持者坚持认为API与SOA没有多大关系,而且它们属于非常不同的方法。它们经常宣称实用RESTAPI和SOA之间存在巨大差异。南邵电脑培训建议分工将SOA服务和RESTfulapi集成到一个统一的体系结构中。
团队必须在SOA和API思想之间建立一个桥梁,并构建一个实际的计划来集成API和SOA。
“doREST”和“创建api”的团队通常专注于克服技术和业务障碍,增加外部扩展、具体演示和核心业务用例,而不涉及复杂的技术。SOA团队通常专注于实现可伸缩性、实现业务标准、建立决策中心和满足复杂的非功能性需求。
通过结合api和SOA的思想,团队可以在遵循业务策略和扩展需求时快速交付业务解决方案。
务实的RESTAPI关注点
REST是系统开发的一种架构风格,它对一系列服务交互施加约束。正式的REST约束包括客户机-服务器和无状态交互、可缓存响应、不变契约、分层系统设计和按需编码。这些约束有利于特性的出现,即简单性、可扩展性、可变性、可靠性、可见性、性能和可移植性。满足REST约束的系统称为RESTful。RESTful设计可以增加很多好处:
?使数据和服务更易于访问?降低入门门槛?尽最大可能扩展受众数量?使API或服务被大量的用户代理消费?使数据和服务逐步演进?在运行期扩展系统?对资源的修改不会影响到客户?动态指导客户行为?使系统可扩展、可靠和高性能?简单?可缓存?原子性
虽然RESTful设计有利于支持SOA目标,但实用REST的战略重点不同于许多SOA项目。实用RESTAPI设计团队专注于自底向上的应用程序场景和友好的协议或格式(如HTTP和JSON、DNS)、公差接口定义和简单的交互模型(如上面的保证交付重试)。
务实的SOA最佳实践
实用的SOA团队不会强制公共(和复杂的)标准。一个实用的SOA团队提供了有价值的业务能力,减少了应用程序的阻力,并提供了独特的服务价值。
一个务实的SOA团队并没有鼓吹难以 *** 作的最佳实践。他们依靠intergroup和自动化治理来简化最佳实践的应用,这使得团队更容易做正确的事情。
务实的SOA团队关注技能差距和应用障碍。它们提供了加速包(如架构、工具、框架、api或服务构建块)来减少培训、增加自服务应用程序和加速项目交付。
一个实用的SOA团队将平衡企业治理与项目自治。成功的团队没有建立起发展和注册的门槛,引入了许多机制来完善服务,间接互动,服务水平,促进自助服务的应用,引入了促进服务团队发展、服务共享和服务应用的机制。您可以使用这些机制作为现有API管理的核心。
应用程序编程接口,简称API(Application Programming Interface),就是软件系统不同组成部分衔接的约定。随着软件规模的日益庞大,我们需要把复杂系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。
API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。 A reference implementation of an API is the implementation created by the designer of the API, or one which other implementations of the API are expected to be compared against.
例如,图形库中的一组API定义调用绘制图标函数的方式,以于屏幕上显示图标。程序中调用,编译时连接到这组API,执行时便调用API的实现(库)来显示图标。
*** 作系统的API可用来分配内存或访问文件。许多系统与应用程序提供API接口与实现,比如图形系统,数据库,网络,Web服务,甚至于某些游戏。
一组API经常是一套软件开发工具包(SDK)的一部分。SDK亦可包含其它工具亦或至于硬件,两个术语并不完全等同.
API有诸多不同设计。用于快速执行的接口通常包括函数,常量,变量与数据结构。也有其它方式,如通过解释器,或是提供抽象层以遮蔽同API实现相关的信息,确保使用API的代码无需更改而适应实现变化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)