-
Notifications
You must be signed in to change notification settings - Fork 5
Interface Validate 接口校验
前后端分离后,前端开发者和后端开发者根据约定的接口文档进行分别开发,并在自测后进行联调。但即使有比较完整的单元测试,也往往由于前后端开发者在开发过程中存在调整或者误解,而导致接口实现与接口文档出现偏离,以至于在联调过程中,频繁修改这些不一致的问题。对此我们识别到如下需求:
- 对于【后端开发者】,在本地开发时,可以通过【接口校验】功能,发现请求参数是否处理正确、返回结果是否规范,以及BUG调试。
- 对于【前端开发者】,可以在接口联调前,核实已部署在测试环境的后端接口是否按照接口文档的规范进行实现。
在接口详情界面,点击【验证】图标,进入接口校验。
【基本设置】抽象了目标服务的一些全局配置,如:目标服务地址的基本信息和鉴权用的全局头信息。一般一个接口仓库对应着一个后端服务,此配置是为了提高这些全局配置的可复用性。
-
编辑【接口服务配置】
-
默认设置
【接口服务配置】为仓库级作用域,会根据上次的配置自动填写,如果本仓库未设置过,则会根据接口文档数据自动填写Mock服务的地址。
点击【编辑】图标,可进行编辑。
-
编辑配置
【域名/IP】目标接口的IP或者域名。
【端口】目标接口的端口,如果未填写,则使用协议的默认端口。
【根路径】去除接口定义的path后的前缀path,如:/user/login
接口的全path为/api/v2/user/login
,则其根路径为/api/v2
。
【协议类型】HTTP RESTful、websocket(暂不支持)、RPC(暂不支持)。
【开启SSL】如果目标接口需要使用HTTPS或者WSS,则开启此项。
【携带Cookie】如果目标接口需要通过cookie携带鉴权信息,则开启此项(在非代理模式下,由浏览器访问目标接口,请确保目标接口与rap在同一个主域名下。代理模式尚未实现。)。
点击【确认】图标,可进行保存。
-
-
编辑【全局头信息配置】
-
默认设置
【全局头信息配置】为仓库级作用域,会根据上次的配置自动填写,如果本仓库未设置过,则为空。
点击【编辑】图标,可进行编辑。
-
编辑配置
点击【+】添加一条头信息的配置,请确保【名称】不为空,否则在失去焦点时,会将删除此字段。
点击【确认】图标,可进行保存。
-
【目标结果】是为了方便与接口响应结果进行对比,比如:是否存在未定义字段、是否确实必填字段、字段类型是否正确、字段值是否为指定的字面值等。当然,系统已根据接口文档的定义自动生成默认值和默认的校验规则。用户可以基于默认值进行编辑和修正。
- 编辑【目标结果】
-
默认设置
【目标结果】为接口级作用域,会根据上次的配置自动填写,如果未设置过,则根据接口文档定义生成默认值并填写。
点击【编辑】图标,可进行编辑。
-
编辑配置
在JSON编辑器区域进行修改,如果字段与其定义不相符,则会提示相应的错误。
如果JSON编辑存在错误提示,则无法进行保存,如果此时切换tab,则会抛弃此次编辑内容。
-
在【接口请求】,配置需要的业务参数和调用方法(如果必要),点击【调用】按钮,进行目标接口的请求。
如果目标接口调用失败,会有对应的提示,请核实接口服务配置和全局头信息配置是否正确。
如果目标接口调用成功,相应结果将展示在JSON编辑器区,并根据接口定义,进行字段校验(比如:是否有多余字段、必填字段是否缺失、字段类型是否正确等)。
(目前接口调用是基于浏览器的能力,所以无法绕过跨域、cookie等安全性问题。当然,用户可以使用熟悉的客户端代理软件进行设置,或者配置目标接口的响应头而允许跨域。后续将提供一个简单的服务端代理功能。)
-
编辑请求参数
- 编辑请求参数
系统会根据接口定义中的请求参数(Headers参数、Query参数、Body参数)展示对应模块并生成默认值。
根据需要,修改请求参数内容(增删字段、修改字段类型和值等)。
- 编辑请求参数
-
调用接口
-
配置请求方式
系统会根据接口文档初始化接口地址信息和Body编码方式,一般不建议修改,防止导致与接口文档定义不一致。如果为了试探接口的真实实现方式,可以通过修改进行尝试。
点击【调用】按钮进行目标接口请求。 -
调用接口
如果接口请求失败(服务地址配置错误、服务4xx或者5xx)会提示错误信息。
提示信息展示6秒后自动关闭,如果鼠标停留在提示信息上,将不自动关闭。
-
-
校验接口结果 如果目标接口请求成功,响应结果将展示在JSON编辑区,并与接口定义的【响应内容】规则进行校验。如果校验失败,进行对应的提示。
检验结果提示分两个级别,如果存在接口文档未定义的字段(多字段),则是WARNING级别;其他(缺少必填字段、字段类型错误等)则为ERROR级别。- 校验成功
- 校验错误