什么是接口?
接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合
API作为应用程序编程接口,(API:Application Program Interface),可以使用不同的编程语言进行API的开发
API 与图形用户接口(GUI)或命令接口有着鲜明的差别:API 接口属于一种操作系统或程序接口,而后两者都属于直接用户接口。
按照接口表现形式分类
序号 | 接口 | 基于或支持的协议 | 描述 |
---|---|---|---|
1 | HTTP 接口 | HTTP协议 | 使用广泛、轻量级、跨平台、跨语言的,但凡是第三方提供的API都会有HTTP版本的接口。 |
2 | RPC 接口 | HTTP、TCP、UDP、自定协议 | RPC技术是指远程过程调用,它本质上是一种Client/Server模式,可以像调用本地方法一样去调用远程服务器上的方法,支持多种数据传输方式(Json、XML、Binary、Protobuf等) |
3 | Web Service 接口 | 基于http协议的soap协议的封装和补充 | Web Service其实是一种概念,我们可以将以WEB形式提供的服务称为Web Service,所以像RESTful、XML-RPC、SOAP等都可以当成是Web Service的一种实现方式。 |
4 | RESTful API | HTTP协议 | 它不是一种规范,而是一种设计准则,用不同的HTTP动词(GET、POST、DELETE、PUT等)来表达不同的请求。 |
5 | WebSocket | udp、tcp | 是一个底层的,双向通信协议 ,适合于客户端和服务器端之间信息实时交互 |
6 | FTP | TCP/IP 协议组中的协议之一 | 文件传输协议,FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。 其中FTP服务器用来存储文件 |
RESTFul API (Http/web API)
RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。
RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
要理解RESTful架构,最好的方法就是去理解Representational State Transfer这个词组到底是什么意思,它的每一个词代表了什么涵义。如果你把这个名称搞懂了,也就不难体会REST是一种什么样的设计。
- 每一个URI代表一种资源;
- 客户端和服务器之间,传递这种资源的某种表现层;
- 客户端通过四个HTTP动词,对服务器端资源进行操作,实现”表现层状态转化”。
简单的说,RESTFul API是一种更加规范化的Http API形式,让开发人员一目了然的了解与使用。
WebServices
Web services 把 Web 应用程序提升到了另外一个层面。通过使用 Web services,您的应用程序可向全世界发布功能或消息。
Web services 使用 XML 来编解码数据,并使用 SOAP 借由开放的协议来传输数据。
可重复使用的应用程序组件
有一些功能是不同的应用程序常常会用到的。那么为什么要周而复始地开发它们呢?
Web services 可以把应用程序组件作为服务来提供,比如汇率转换、天气预报或者甚至是语言翻译等等。
比较理想的情况是,每种应用程序组件只有一个最优秀的版本,这样任何人都可以在其应用程序中使用它。
连接现有的软件
通过为不同的应用程序提供一种链接其数据的途径,Web services有助于解决协同工作的问题。
通过使用 Web services,您可以在不同的应用程序与平台之间来交换数据。
- Web Services 是应用程序组件
- Web Services 使用开放协议进行通信
- Web Services 是独立的(self-contained)并可自我描述
- Web Services 可通过使用UDDI来发现
- Web Services 可被其他应用程序使用
- XML 是 Web Services 的基础
基础的 Web Services 平台是 XML + HTTP。
HTTP 协议是最常用的因特网协议。
XML 提供了一种可用于不同的平台和编程语言之间的语言。
Web services 平台的元素:
- SOAP (简易对象访问协议)
- UDDI (通用描述、发现及整合)
-
直接SQL
直接连接数据库的集成方式。
视图 View 用于查询数据;
- 存储过程 Procedure 用于执行一系列的SQL语句,一般用于处理复杂的保存过程;
- 直接SQL语句 一般用于不是很复杂的查询或者添删改查;
构成接口的要素
接口文档
一个软件平台的产品是否成熟完善,取决于开放平台的接口文档是否完整。优秀的产品必定会有结构清晰的文档;开始集成配置之前必须要学会查看接口文档。
轻易云已经集成的部分平台API文档可以在 链接 进行查看。接口名
请求参数
如果接口是用于查询数据的接口,那么它的请求参数一般是数据过滤的条件;标准的数据查询接口必须要支持时间范围过滤。而且最好是【最新修改时间】
如下图中的销售订单查询接口
如果接口是用于写入数据的接口,那么它的请求参数一般是要写入的数据内容本身;
写入数据接口文档需要对每个数据进行详细的说明;
响应参数
接口调用之后,无论成功还是失败都应当返还响应参数。
在响应参数中一般情况下都会有响应状态码来表示成功与失败,以及失败的说明。
在数据查询接口中接口文档还必须说明返回的数据结构。
调用示例说明
完善的接口文档中还必须针对每个接口调用都有完整的示例说明: