接口管理什么意思(需要接口管理的你了解一下?)

大雄 791 2022-06-20


Mock 接口

本节主要描述如何通过 YApi 的 Mock 服务模拟接口的数据。

首先在接口面板里选择高级Mock一栏,选择添加期望来定义所实现模拟的条件和数据。

添加期望时分为两部分,一块是填关于期望的基本信息,如名称,白名单IP,匹配的参数等,另外一块就是期望模拟的响应数据,如响应头信息,响应体数据,甚至响应时间也可以设置。

在这里设置响应体数据时,除了使用常规的固定假数据返回,我们可以使用 Mock.js 支持的语法,让假数据随机生成,例如下方的示例模拟一个简单的响应数据: code 为 200 或者 400,message 为重复出现 1~10次的测试两次。


保存之后,我们对接口的 Mock 地址 (预览面板中 Mock 地址链接)进行多次请求就随机获得以下的请求数据:


{
"code": 200,
"message": "测试测试测试",
"data": {}
}

{
"code": 400,
"message": "测试测试测试测试测试测试",
"data": {}
}

当然除了这样方式定义模拟数据的生成,还有许多丰富的形式,具体的数据定义语法可以参见 Mock.js 提供的官方示例:http://mockjs.com/examples.html

最佳实践

接口分级

YApi 以项目为单位进行接口的管理,基于此还提供的分类的功能,新生成的接口都有默认的分类为公共分类。

为了能更清晰,更直观有效地管理接口,我们可以从项目的业务角度出发,在 YApi 中将业务转换为接口分类,每个业务分类下管理各自相关的接口,而一些公共接口统一在公共分类中管理,比如下图所示,将订单业务和支付业务分别生成各自的接口分类,在该分类下都是跟自身业务紧密相关的接口。

环境配置

当日常开发中一个程序都会有不同环境要求,接口请求的地址也不同,为了便于多环境接口的切换,我们可以在项目设置的环境配置 一项添加该项目下接口的多个环境,并且这里增加了全局 header,项目中设置全局 header 值。

除此之外,用户可以在每个环境配置项中定义 global 全局变量的名称和值, 接口运行或者测试集合里面可以通过 {{ global.Name }} 来访问当前环境变量下定义的全局变量。



设置保存之后,我们就可以在该项目下任一接口的运行面板里切换环境地址,如下

请求配置

YApi 支持 pre-script, 就是通过自定义 js 脚本方式改变请求的参数和返回的 Response 数据,而这个功能可以满足当我们请求和响应的数据都是通过加密处理的使用场景。

请求配置的位置同样在项目设置里,针对项目的所有接口生效,对外提供公共变量 context 对象包含的请求和响应的所有数据 。

如果我们需要在一组接口的 URL 上增加一个公共的 token 参数,可以在 Pre-request Script 里写如下脚本:




而如果我们需要修改响应数据中某个值进行修改,可以填写如下 Pre-response Script 里写如下脚本:

另外,全局变量 context 还提供的工具函数,让我们使用:

结合工具函数,我们就可以进行接口请求时和响应时的加密处理,例如我们需要对响应体中 data 数据进行 Base64 加密,可以定义如下脚本:


数据导入导出

在数据管理上,YApi 提供了简单而有效的方案来支持数据的导入和导出。

YApi 支持快速导入其他格式的接口数据,以方便快速添加接口。YApi 目前支持 Postman, Swagger, JSON 数据导入等,方便我们进行接口数据迁移。

而当我们需要把接口分享给非项目组内的人时,我们可以使用数据导出功能,以 HTML,Markdown 或者 JSON 的格式导出项目接口文档数据,只需要将文档文件给到他人就行了。

结语

本文主要记录了开源接口管理平台- YApi的基本介绍和使用。面对多人多项目的团队开发,有个统一的管理平台来进行接口管理和维护,还是很有必要的,也是很基础的,对项目的开发效率提高也有很大帮助,如果你有正在使用 YApi 有更好的使用姿势或者遇到什么坑,更或者在使用过其他的接口管理平台框架,也欢迎留言交流讨论。



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:接口管理系统有哪些(有没有开源的api管理系统?)
下一篇:python 内置函数input/eval(22)(python中布尔类型的值是)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~