什么是接口
1.接口全称为应用程序编程接口(Application Programming interface),简称为API
2.接口的本质是程序员所编写的函数或方法,完成一定功能的代码集合
3.人类与电脑等信息机器或人类与程序之间的接口称为用户界面
4.电脑等信息机器硬件组件间的接口叫硬件接口
5.电脑等信息机器软件组件间的接口叫软件接口
接口的优势
1.规范性
接口就是规范,在整个系统设计中,涉及到很多层,为了使各个层之间调用透明化,你只需要知道接口,按照这个接口做你具体做的事情,就可以融入到整个系统中
例如:插头、插座,有标准的规范告诉你插头应该是几个脚,插座是几个孔等等,做插头、插座的公司就是根据这个规范来做插头、插座,而不需要做完一个插头就跑遍全世界去试用一下这个插头做的对不对。
2.扩展性
在项目开发过程中,由于客户的需求经常发生变化,如果不采用接口,那么我们必须不停的改写现有的业务代码。
改写代码可能产生新的BUG,而且改写代码还会影响调用的业务的类,可能全部需要修改,影响系统本身的稳定性,到最后可能会出现代码凌乱,不易读懂,后接手的人无法读懂代码,系统维护工作越来越重,最终导致项目失败。
接口在项目就是一个业务逻辑,面向接口编程就是先把客户的业务提取出来,作为接口。业务具体实现通过该接口的实现类来完成的。
当客户需求变化的时候,只需编写该业务逻辑的新的实现类,不需要更改现有代码,减少对系统的影响。最终让项目具有更强大扩展性
常见的接口类型
接口是指外部系统与系统之间以及内部各子系统之间的交互点。
其中包括外部接口、内部接口
内部接口又包括上层服务与下层服务接口、同级接口
系统对外接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,它只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就可以使用它写好的方法,从而达到数据共享的目的
程序的内部接口:方法与方法之间、模块与模块之间的交互,程序内部抛出的接口,比如TMOOC系统,有登录模块、我的课程等等,如果你要看我的课程必须先登录,才可以观看,这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用
常见的WEB接口有哪些
HTTP协议的接口、WEB SERVICE接口
HTTP接口是走HTTP协议,通过路径来区分调用方法,请求的报文都是key = value的形式,返回的报文一般都是JSON串,有GET和POST等方法,这也是最常用的两种请求方式。
WEB SERVICE接口是走SOAP协议通过HTTP传输,请求报文和返回的报文一般是xml格式,在测试过程中一般使用工具才能进行调用测试 -- 用的较少
程序中的接口 API
接口的本质及其工作原理是什么
接口你可以简单的理解他就是URL,工作原理就是说URL通过GET或POST请求向服务器中发送一些数据,然后得到一些相应的返回值,本质就是数据的传输与接收
请求模型:
说起来,怎么才能让灯亮?一个灯头接两根线,一根线接火线,一根线接零线这时灯就亮了。反之,不接零线、火线灯就灭了。
其实接口呢,就把这些复杂的操作简化了,让你看到的就只有一个开关,而你来操作这个开关就好了。我们做接口测试也只需要测试这个开关就完成任务了,接口测试就是这么简单。
当你访问“http://127.0.0.1:8080/light?opt=open”,让零线、火线连通,此时灯亮。
当你访问“http://127.0.0.1:8080/light?opt=close”,让零线、火线断开,此时灯灭。
服务器和客户端(机)
服务器是被测软件或被测接口程序安装的位置
使用linux操作系统作为服务器,会使用云服务的形式存在
客户端/机是个人计算机,通常将postman、fiddler、jmeter安装在个人计算机上
请求和响应
客户端要使用服务器上的软件或接口程序,需要把要处理的数据发送给服务器,服务器上的接口程序会处理数据,然后把结果发给客户端
客户端发送数据给服务器的过程叫做请求
服务器把处理结果发送给客户端的过程叫做响应
请求的组成部分
请求头,包含许多有关客户端环境和请求正文的有用信息,例如,请求头可以声明浏览器所用的语言,请求正文的长度,操作系统等
示例:
请求体,也叫请求正文,对于post方法来讲,要发给服务器的数据存放在请求体中
返回格式有,JSON格式,xml格式,html格式,二进制格式( 多数用于图片 ),字符串格式
响应的组成部分
响应头主要是指响应的附加信息,比如响应类型、响应状态码、cookie、session等
响应体也叫响应正文,相当于接口返回值,也是从测试人员测试时最关心的内容
作者:暄总-tester