一. 什么是接口html
接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。python
接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。体现了天然界“若是你是……则必须能……”的理念。web
接口是在必定粒度视图上同类事物的抽象表示。由于“同类事物”这个概念是相对的,它由于粒度视图不一样而不一样。数据库
二. 为何要使用接口?而不是直接实现呢?api
接口的使用并不是老是从设计的角度来考虑。接口和python其余语法现象同样,共同构成了python整个语言体系。服务器
接口的意义在于 抽象、不拘细节,从而使同类事物在同一高度具备通用及可替代性。markdown
在系统分析和架构中,分清层次和依赖关系,每一个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是经过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。架构
- 系统灵活性加强
当下层须要改变时,只要接口及接口功能不变,则上层不用作任何修改。甚至能够在不改动上层代码时将下层整个替换掉,就像咱们将一个WD的60G硬盘换成一个希捷的160G的硬盘,计算机其余地方不用作任何改动,而是把原硬盘拔下来、新硬盘插上就好了,由于计算机其余部分不依赖具体硬盘,而只依赖一个IDE接口,只要硬盘实现了这个接口,就能够替换上去。 - 不一样部件或层次的开发人员能够并行开工
就像造硬盘的不用等造CPU的,也不用等造显示器的,只要接口一致,设计合理,彻底能够并行进行开发,从而提升效率。
那么具体何时用,何时不用呢?在常见的三层架构中,有如下几个层次,分别进行说明:app
- 界面层
也就是展现层,直接呈现给用户的,可能不一样的软件有不一样的呈现方式,好比Web,WinForm,甚至移动APP,在这个层次,我认为是没有必要写太多的接口。 - 业务逻辑层
这个层次,业务逻辑,能够根据须要使用接口。若是是直接读写数据库什么的,就直接用调用数据库访问层的接口。若是是与多个第三方接口进行交互,那么就须要接口,不一样的渠道各自实现。 - 数据访问层 数据访问层,最好使用接口,好比数据库访问,这种能够根据不一样的数据库实现相应的接口向业务逻辑层提供服务。
三.接口请求的类型工具
http1.0定义了三种请求方法:get,post,head
http1.1新增了五种请求方法:options,put,delete,trace,connect
Get:请求指定的页面信息,并返回实体。Get能够说是最多见的,它本质就是发送一个请求来获取服务器上的某一资源,资源经过一组http头和呈现数据返回给客户。
Head:相似于get请求,只不过返回的响应中没有指定的内容,用于获取报头。
Post:向服务器提交数据。这个方法用途普遍,几乎全部的提交操做都是靠这个完成。
Put:从客户端向服务器传送的数据取代指定的文档的内容。Put与post都是向服务器发送数据,他们之间有一个重要的区别,put一般指定了资源的存放位置,而post没有,post的数据存放位置由服务器本身决定。
Delete:请求服务器删除指定的页面。删除某一个资源
Connect:http1.1协议中预留给可以将连接改成管道方式的代理服务器。
Options:容许客户端查看服务器的性能。返回服务器针对特定资源所支持的http请求方法。
Trace:回显服务器收到的请求,主要用于测试或者诊断。
四.接口规范和接口文档
接口规范的重要性
无规矩不成方圆,为了web/app开发人员与后台接口开发人员更好的配合,因此咱们须要制定接口规范。接口,是Web/APP端与服务器端交互密不可分的环节,接口的规范性会直接影响双方对接过程当中的效率和质量。本着快速高效开发的目的性,避免对接过程当中的错误率,接口应当有规范的约束。
接口文档
后台接口人员和移动端开发人员之间的配合确定少不了接口文档这种利器!像中大型项目可能一个接口包含的字段就有上百个,若是没有接口文档,仅仅靠两我的口头交流,那估计一天就能搞定几个接口配合。
接口文档有哪几种形式哪?
1 Excel,Word等文档形式。
2 接口管理开源网站
接口文档和接口测试工具--apipost
它既能够测试接口也可根据测试的接口生成文档,有在线文档,离线文档如:html\markdown和word格式文档,直接生成不用本身手写.