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集群客户要求修改数据库的监听端口,在处理的过程中,发现网上的相关资料都不是很全面,所以整理了一下,希望给其他有需要的朋友提供一点有利的参考资料.具体操作过程如下: ...
随机推荐
- Java-Collection、Map和Array之间的转换
1 List -> Map 设个User类: public class User { private String userName; private String userId; privat ...
- 泛微OA e-cology 数据库接口信息泄露学习
泛微OA e-cology 数据库接口信息泄露 漏洞信息 攻击者可通过存在漏洞的页面直接获取到数据库配置信息.如果攻击者可直接访问数据库,则可直接获取用户数据,甚至可以直接控制数据库服务器:会将当前连 ...
- C#:[StructLayout(LayoutKind.Sequential)]
参考网址: https://blog.csdn.net/hongkonglife/article/details/23422857 结构体是由若干成员组成的.布局有两种1.Sequential,顺序布 ...
- 如何在github上传本地项目代码
首先你要在github上申请一个账号 网址:https://github.com/ 然后你要下载一个git工具 网址:https://gitforwindows.org/ 进入官网直接下载就行,下载完 ...
- HttpClient4.3教程 第三章 Http状态管理
最初,Http被设计成一个无状态的,面向请求/响应的协议,所以它不能在逻辑相关的http请求/响应中保持状态会话.由于越来越多的系统使用http协议,其中包括http从来没有想支持的系统,比如电子商务 ...
- Java知识图谱(附:阿里Java学习计划)
摘要: 本文主要描绘了Java基础学习过程,给出Java知识结构图,以及阿里Java岗学习计划,对Java学习爱好者.准备及将要从事Java开发方面的同学大有裨益. 温馨提示: 由于C ...
- URL的加密解密方法
package day11.about_url_encoder; import java.io.UnsupportedEncodingException; import java.net.URLDec ...
- Java程序设计学习笔记(四)—— GUI
时间:2016-3-24 11:24 天道酬勤 --GUI(图形用户界面) 1.GUI Graphical User Interface(图形用户接口). 用图形的 ...
- Spring Data JPA:解析JpaSpecificationExecutor & Specification
源码 在前面关于SimpleJpaRepository的文章[地址]中可以得知,SimpleJpaRepository间接实现了JpaSpecificationExecutor接口,本文就详细探究一下 ...
- vue 优化hash持久化缓存
公司用的是vue最近在学习react的打包时发现react会额外生成一个runtimeChunk,不知道具体原因所以查资料学习了下, 这里是runtime的功能,文章地址:https://sebast ...