YApi-高效、易用、功能强大的可视化接口管理平台——(三)YApi 项目管理

news/2024/12/28 22:46:27/

YApi 项目管理

    • 新建项目
    • 修改项目图标
    • 项目迁移
    • 项目拷贝
    • 删除项目
    • 配置环境
    • 请求配置
      • 请求参数示例
      • 返回数据示例
      • storage
      • 工具函数
      • 异步处理(v1.3.13+支持)
    • token
    • 全局mock

新建项目

  1. 点击右上角的 + 新建项目,进入新建项目页面:

    image-20230707145206499

  2. 完善项目信息,指定项目所属分组,点击【+创建项目】:

    image-20230707150225616

    注:权限公开私有可以在项目创建之后进行设置。

  3. 查看创建好的项目:

    image-20230707150516017

  4. 在项目页点击上方的 设置 Tab 进入项目设置面板,这个面板涵盖了项目的所有配置:

    image-20230707151011341

修改项目图标

在【项目配置】页点击项目图标,可以修改图标及背景色:

image-20230707151044194

项目迁移

YApi 中支持项目迁移到不同的分组中:

image-20230707151200073

迁移权限: 只有管理员和该项目的 owner 有权限对位置进行修改。项目 owner 主要有创建该项目的人、项目中的组长、创建分组的人、分组中的组长。

注:owner 权限判断的优先级是 项目权限 > 分组权限

项目拷贝

  1. 该功能在 v1.3.12 版本上线,项目克隆功能可复制项目全部接口到一个新项目,如下图所示,点击红色框里面的 icon 使用。

    image-20230707151313129

    注:如果你在该分组下有新建项目的权限,那你也同时拥有复制项目的权限

  2. 点击下图左上角的复制按钮,在弹窗中写入复制项目名称点击确定就可以完成项目复制:

    image-20230707151352619

    注:YApi 支持项目复制功能,但是无法复制项目中的测试集合 list。

删除项目

点击下方的删除按钮:

image-20230707151707263

输入项目名称进行删除:

image-20230707151730550

配置环境

环境配置 一项可以添加该项目下接口的实际环境,供 接口测试 使用,这里增加了全局 header,可以在项目中设置全局 header 值。在接口运行页面的选择环境 select 中也增加环境配置弹层。

image-20230707152303863

v1.3.21 新增全局变量,用户可以在环境列表中定义全局变量的名称和值, 接口运行或者测试集合里面可以通过 {{ global.token }} 来访问当前环境变量下定义的全局变量:

image-20230707152432987

请求配置

pre-script,通过自定义 js 脚本方式修改请求的参数和返回的 response 数据。

请求参数示例

以 jquery ajax 为例,假设当前的请求参数是:

{url: '/api/user?id=1',method: 'POST',headers: {xxx: 'xxx'},data: {type: 1}
}

那么公共变量 context 包含以下属性:

context = {pathname: '/api/user',query: {id: 1},requestHeader: {xxx: 'xxx'},method: 'POST',requestBody: {type:1}
}

假设我们需要在一组接口的 url 上增加一个公共的 token 参数,可以写如下自定义脚本:

context.query.token = context.utils.md5(context.pathname + 'salt');

返回数据示例

在上面的示例请求完成后,假设返回 responseData={a:1},公共变量 context 包含以下属性:

context = {pathname: '/api/user',query: {id: 1},requestHeader: {xxx: 'xxx'},method: 'POST',requestBody: {type:1},responseData: {a:1},responseHeader: {content-type: 'application/json'...}
}

假设我们需要修改响应数据 responseData a 的值为 2,可以填写如下自定义脚本:

context.responseData.a = 2;

(v1.3.16+新增)context.href 和 context.hostname
(v1.3.17+新增)context.caseId 测试用例的唯一 key 值

storage

storage.setItem 兼容浏览器和服务端,并且是持久化数据存储,不会丢失,用法类似于 localStorage。 storage 一共两个 api,分别是 setItem 和 getItem

storage.setItem('xxx', 'token-----xxxxx')
context.query.token = storage.getItem('xxx')

工具函数

context.utils = {_         //underscore 函数,详细 API 查看官网 http://underscorejs.org/CryptoJS  // crypto-js(v1.3.21+新增), 详细用法看 https://github.com/brix/crypto-jsbase64    //转换字符串为 base64 编码md5       //转换字符串为 md5 编码sha1      //转换字符串为 sha1 编码sha224    //转换字符串为 sha224 编码sha256    //转换字符串为 sha256 编码sha384    //转换字符串为 sha384 编码sha512    //转换字符串为 sha512 编码unbase64  //转换 base64 编码为字符串  axios     // axios 库,可用于 api 请求,官网 https://github.com/axios/axios
}

CryptoJS 具体用法

var data = [{ id: 1 }, { id: 2 }];// Encrypt
var ciphertext = context.utils.CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123');// Decrypt
var bytes = context.utils.CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));console.log('decryptedData', decryptedData);

异步处理(v1.3.13+支持)

处理请求参数,或返回数据,可能还会涉及到异步处理,比如 ajax 请求,YApi 在 v1.3.13 版本支持了异步处理。

context.promise = new Promise(function(resolve) {var api = context.utils.axios.get('http://yapi.local.qunar.com:3000/api/user/status');api.then(function(result) {//...console.log(result.data);resolve();});
});

promise 还可以来设置接口延迟

context.promise = new Promise(function(resolve) {setTimeout(function() {console.log('delay 1000ms');resolve('ok');}, 1000);
});

使用方法就是在 context 里面添加 promise 参数,并且返回一个 Promise,不熟悉 Promise 的童鞋可以查下相关用法,ajax 请求可以使用 context.utils.axios 库。

处理完成后,不要忘记 resolve(),不然会一直处于挂起状态

token

每个项目都有唯一的标识 token,用户可以使用这个 token 值来请求 openapi。

openapi 文档地址

全局mock

v1.3.21 新增全局 mock 设置,方便用户在项目层面上全局设置公共的mock数据,具体 mock 脚本详细使用方法详见 自定义 Mock 脚本

Mock 优先级说明

请求 Mock 数据时,规则匹配优先级:Mock 期望 > 自定义 Mock 脚本 > 项目全局 mock 脚本 > 普通 Mock。

如果前面匹配到 Mock 数据,后面 Mock 则不返回。


http://www.ppmy.cn/news/785128.html

相关文章

小米5 原生android 7.0,发烧米粉看过来!小米5官方版Android 7.0来袭

【TechWeb报道】在华为发布了搭载基于Android 7.0系统的Mate 9后,国内手机厂商也开始陆陆续续开展为自家手机适配Android 7.0系统的工作,比如昨天小米官方论坛发布的小米手机5 Android 7.0 N内测招募贴,昨天只供权限高米粉阅读,今…

极客日报:小米汽车将于2024年实现量产;苹果AR眼镜或于明年底发布;GitLab 14.5发布

一分钟速览新闻点! 消息称阿里CEO张勇或将放权小米汽车将于2024年实现量产传字节跳动将明年电商GMV目标调高为2万亿元贾跃亭旗下FF收到退市警告腾讯财付通外汇业务违规被罚278万我国5G终端用户达4.5亿户,占全球80%以上苹果AR眼镜或于明年底发布微软发布…

成功完成挑战,小米发布2021财报,稳健增长源自模式韧性

如果从中国科技股股价下挫的背景来看,小米的股价表现还算是稳,但从小米发布的财报来看,小米的价值可能被资本市场所低估了。 小米在2022年3月22日发布了2021年业绩,用一个词来描述,可能是稳健。在全球经济面临诸多挑战…

小米青春版发售日期在5月18日

小米一代的竞争力正在下降,现在米二代来了,不过小米公司给换了个马甲,叫小米手机青春版。关键词包括:1499破盘价、1.2G双核处理器(比小米手机只低0.3哦)、4寸高清屏幕…… 小米公司去年开始发售小米手机&am…

小米5 android 7.0 rom,小米5升级安卓7.0 小米5刷安卓7.0教程

小米5怎么升级安卓7.0?小米5可以升级安卓7.0了,有些米粉还不会,其实很简单,rom基地小编今天就带来小米5刷安卓7.0教程,一起来了解下吧! 小米5刷安卓7.0教程: 在经历了一段时间的内测之后,小米5的Android 7…

继小米机器狗、特斯拉机器人后,小鹏汽车发布智能机器马:真的能骑!

9月7日,小鹏汽车(09868.HK;XPEV.US)正式公布生态企业新成员——深圳鹏行智能研究有限公司(以下简称“鹏行智能”),并发布首款智能机器马第三代原型机。 小鹏汽车称,该智能机器马在动…

html4是什么时候发布的,小米MIX4发布时间已确定 小米MIX4什么时候发布2021

小米MIX4发布时间已确定,小米MIX4什么时候发布2021。近日,小米官方称有多款新产品通过了入网测试审核,其中之一就是大家目前最期待的小米MIX4系列,这款MIX4手机相信大家都有所耳闻了。下面是中国香烟网小编整理的关于小米MIX4发布…

pyspark初学含义

1.pyspark中的spark.sql.repl.eagerEval.enabled作用 如果使用jupyter调试pyspark程序,可以配置spark.sql.repl.eagerEval.enabled选项,可以像pandas一样直接执行df即可查看数据(不需要手动调用show函数): 2.withCo…