yapi 事件创建、修改等接口事件监听
使用的yapi作为接口文档平台。出于业务需求需要对接口创建、修改、删除等事件进行监听。
yapi已经实现并预留了这个口子,但是没有找到实现的文档。这里进行简单描述下使用的方式。
一、yapi创建、修改接口事件
根据yapi目前的开放实现机制,在plugin.js这个文件中提供了一些事件其中就有创建、修改接口的事件。
在创建接口时,会将接口的详细信息作为参数;当接口编辑更新时,会将编辑的接口的接口ID作为参数。详细说明如下:
1.1 yapi 创建接口事件
/**
* 客户端增加接口成功后触发
* @param data 接口的详细信息
*/
interface_add: {
type: 'multi',
listener: []
},
1.2 yapi更新接口事件
/**
* 客户端更新接口成功后触发
* @param id 接口id
*/
interface_update: {
type: 'multi',
listener: []
},
二、提供接口事件的回调接口
这里使用Springboot提供实现了两个接口,分别是接口创建、接口编辑更新接口。根据自身业务需求当有接口创建、接口更新时进行实现逻辑即可。
public interface YApiCallbackFacade {
/**
* 创建接口
*
* @param data 创建接口参数信息
*/
@PostMapping("/api/yapi-callback/v1/interface/create")
ResultBean<CreateInterfaceVo> createInterface(@RequestParam("data") data);
/**
* yapi更新
*
* @param apiId 更新接口的ID
*/
@GetMapping("/api/yapi-callback/v1/interface/update")
ResultBean<Boolean> updateInterface(@RequestParam("id") String apiId);
}
三、yapi调用回调接口
在触发事件中实现调用回调接口的逻辑。
var hooks = {
/**
* 客户端增加接口成功后触发
* @param data 接口的详细信息
*/
interface_add: {
type: 'multi',
listener: [createInterface]
},
/**
* 客户端更新接口成功后触发
* @param id 接口id
*/
interface_update: {
type: 'multi',
listener: [updateInterface]
}
};
在两个事件的listener中配置实现的方法。详细方法如下:
/**
* 创建接口
* @param data
*/
function createInterface(data) {
console.log(data);
axios.post('https://127.0.0.1/api/yapi-callback/v1/interface/create', {
'data': JSON.stringify(data)
}).then(response => {
console.log(response.data)
});
}
/**
* 更新接口
* @param data
*/
function updateInterface(data){
axios.get('https://127.0.0.1/api/yapi-callback/v1/interface/update?id='+data).then(response=>{
console.log(response.data)
});
}
创建接口时data的部分格式如下
{
edit_uid: 0,
status: 'undone',
type: 'static',
req_body_is_json_schema: false,
res_body_is_json_schema: false,
api_opened: false,
index: 0,
tag: [],
method: 'GET',
catid: 66,
title: '人员信息-test',
path: '/api/person/info',
project_id: 48,
req_params: [],
res_body_type: 'json',
query_path: { path: '/api/person/info', params: [] },
uid: 12,
add_time: 1632543497,
up_time: 1632543497,
req_query: [],
req_headers: [],
req_body_form: [],
_id: 5074,
__v: 0
}
这里是接口创建时data的格式。
yapi 事件创建、修改等接口事件监听的更多相关文章
- Java Swing类 例子代码:将子类继承JFrame 并且接口按键监听ActionLisetener (将内容直接添加到JFrame不创建Contaniner)
package rom; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import ...
- Java NIO.2 使用Path接口来监听文件、文件夹变化
Java7对NIO进行了大的改进,新增了许多功能: 对文件系统的访问提供了全面的支持 提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的Ja ...
- java事件响应方法汇总(容器类监听、监听器类、AbstractAction、反射)
Java图形用户界面中,处理事件时所必须的步骤是: 1.创建接受响应的组件(控件)2.实现相关事件监听接口3.注册事件源的动作监听器4.事件触发时的事件处理 相应的可以通过以下的集中方式来作出事件响应 ...
- javascript事件有哪些?javascript的监听事件
事件类型: 1.界面事件 onload:描述文档,图片,css已经frame,object加载完毕时触发,window.onload window.onload = function(){ //代表图 ...
- 退出全屏监听ESC事件,这里没有用keydown来监听,因为全屏时候keydown监听不到
浏览器故意不上监听ESC键的,跟网页加载完成之后不能用程序使浏览器全屏一样的道理,避免开发者恶意全屏,不啰嗦,解决办法如下:window.onresize = function(){if(!check ...
- nginx源代码分析--监听套接字的创建 套接字的监听 HTTP请求创建连接
作为一个webserver,那么肯定是有监听套接字的,这个监听套接字是用于接收HTTP请求的,这个监听套接字的创建是依据配置文件的内容来创建的,在nginx.conf文件里有多少个地址就须要创建多少个 ...
- 使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等
转自:http://www.cnblogs.com/qianyiliushang/p/4348584.html 准备工作: 安装JDK,推荐使用1.7以上版本,并设置JAVA_HOME 下载Jmete ...
- 转: 使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等
转自:http://www.cnblogs.com/qianyiliushang/p/4348584.html 准备工作: 安装JDK,推荐使用1.7以上版本,并设置JAVA_HOME 下载Jmete ...
- Oracle RAC 11gR2 修改本地及SCAN监听端口
昨天同事说有套RAC集群客户要求修改数据库的监听端口,在处理的过程中,发现网上的相关资料都不是很全面,所以整理了一下,希望给其他有需要的朋友提供一点有利的参考资料.具体操作过程如下: ...
随机推荐
- Supervisord远程命令执行漏洞(CVE-2017-11610)复现
Supervisord远程命令执行漏洞(CVE-2017-11610)复现 文章首发在安全客 https://www.anquanke.com/post/id/225451 写在前面 因为工作中遇到了 ...
- Windows注册表内容详解(转载)
(关于windows注册表的整理,来源网络) 前提 一.什么是注册表 注册表是windows操作系统.硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库",也可以说是 ...
- Git连接github以及gitee等使用教程
Git连接github以及gitee等使用教程 一.初始化本次仓库 在想要放置仓库的文件夹出git bash输入命令 git init 二.生成ssh 在github或者gitee注册账户, 在本地生 ...
- LuoguP3167通配符匹配
题意 本题的意思就是给出一段带有 $ ? $ 与 \(*\) 的字符串 (在下面称为\(s\)), $ ? $ 必须占据一个字符位置, \(*\) 可以占据任意位置, 求下面给出几段(在下面称为\(s ...
- .NET Core 微服务学习与实践系列文章目录索引(2019版)
参考网址: https://archy.blog.csdn.net/article/details/103659692 2018年,我开始学习和实践.NET Core,并开始了微服务的学习,以及通过各 ...
- LeetCoded第239题题解--滑动窗口最大值
滑动窗口最大值 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口内的 k 个数字.滑动窗口每次只向右移动一位. 返回滑动窗口中的最大值. 进 ...
- LeetCoded第242题题解--java--数组
数组 数组的优点在于: 构建非常简单 能在 O(1) 的时间里根据数组的下标(index)查询某个元素(连续内存+对象指向数组下标0位置+index能够直接找到元素) 而数组的缺点在于: 构建时必须分 ...
- PQGrid商业化的表格组件
官网地址https://paramquery.com/pro/grid 右侧导航条有目录哟,看着更方便 快速入门 表格构建 API简单介绍 主要研究功能介绍 快速入门 ParamQuery Grid ...
- [转]VRRP协议详解
原文地址:VRRP协议详解 文中涉及缩略语 缩略语 英文全名 中文解释 VRRP Virtual Router Redundancy Protocol 虚拟路由器冗余协议 NQA Network Qu ...
- apt-get 安装程序时报 'E: Unable to locate package xxx' 错误处理办法
提示无法定位包,要执行命令更新: sudo apt-get update