一. 什么是接口
接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。
接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。体现了自然界“如果你是……则必须能……”的理念。
接口是在一定粒度视图上同类事物的抽象表示。因为“同类事物”这个概念是相对的,它因为粒度视图不同而不同。
二. 为什么要使用接口?而不是直接实现呢?
接口的使用并非总是从设计的角度来考虑。接口和python其他语法现象一样,共同构成了python整个语言体系。
接口的意义在于 抽象、不拘细节,从而使同类事物在同一高度具有通用及可替代性。
在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。
系统灵活性增强 当下层需要改变时,只要接口及接口功能不变,则上层不用做任何修改。甚至可以在不改动上层代码时将下层整个替换掉,就像我们将一个WD的60G硬盘换成一个希捷的160G的硬盘,计算机其他地方不用做任何改动,而是把原硬盘拔下来、新硬盘插上就行了,因为计算机其他部分不依赖具体硬盘,而只依赖一个IDE接口,只要硬盘实现了这个接口,就可以替换上去。不同部件或层次的开发人员可以并行开工 就像造硬盘的不用等造CPU的,也不用等造显示器的,只要接口一致,设计合理,完全可以并行进行开发,从而提高效率。那么具体什么时候用,什么时候不用呢?在常见的三层架构中,有以下几个层次,分别进行说明:
界面层 也就是展示层,直接呈现给用户的,可能不同的软件有不同的呈现方式,比如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格式文档,直接生成不用自己手写.
ApiPost - www.apipost.cn