使用的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 事件创建、修改等接口事件监听的更多相关文章

  1. Java Swing类 例子代码:将子类继承JFrame 并且接口按键监听ActionLisetener (将内容直接添加到JFrame不创建Contaniner)

    package rom; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import ...

  2. Java NIO.2 使用Path接口来监听文件、文件夹变化

    Java7对NIO进行了大的改进,新增了许多功能: 对文件系统的访问提供了全面的支持 提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的Ja ...

  3. java事件响应方法汇总(容器类监听、监听器类、AbstractAction、反射)

    Java图形用户界面中,处理事件时所必须的步骤是: 1.创建接受响应的组件(控件)2.实现相关事件监听接口3.注册事件源的动作监听器4.事件触发时的事件处理 相应的可以通过以下的集中方式来作出事件响应 ...

  4. javascript事件有哪些?javascript的监听事件

    事件类型: 1.界面事件 onload:描述文档,图片,css已经frame,object加载完毕时触发,window.onload window.onload = function(){ //代表图 ...

  5. 退出全屏监听ESC事件,这里没有用keydown来监听,因为全屏时候keydown监听不到

    浏览器故意不上监听ESC键的,跟网页加载完成之后不能用程序使浏览器全屏一样的道理,避免开发者恶意全屏,不啰嗦,解决办法如下:window.onresize = function(){if(!check ...

  6. nginx源代码分析--监听套接字的创建 套接字的监听 HTTP请求创建连接

    作为一个webserver,那么肯定是有监听套接字的,这个监听套接字是用于接收HTTP请求的,这个监听套接字的创建是依据配置文件的内容来创建的,在nginx.conf文件里有多少个地址就须要创建多少个 ...

  7. 使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等

    转自:http://www.cnblogs.com/qianyiliushang/p/4348584.html 准备工作: 安装JDK,推荐使用1.7以上版本,并设置JAVA_HOME 下载Jmete ...

  8. 转: 使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等

    转自:http://www.cnblogs.com/qianyiliushang/p/4348584.html 准备工作: 安装JDK,推荐使用1.7以上版本,并设置JAVA_HOME 下载Jmete ...

  9. Oracle RAC 11gR2 修改本地及SCAN监听端口

        昨天同事说有套RAC集群客户要求修改数据库的监听端口,在处理的过程中,发现网上的相关资料都不是很全面,所以整理了一下,希望给其他有需要的朋友提供一点有利的参考资料.具体操作过程如下:     ...

随机推荐

  1. MATLAB—常用控制流

    文章目录 一.MATLAB控制流与C语言的区别 二.if-else-end 判断 1.使用方法 2.例题 三.switch-case 分支 1.使用方法 2.例题 四.for.while循环 1.使用 ...

  2. dockerfile中ENTRYPOINT与CMD的结合

    一.写在前面 我们在上篇小作文docker容器dockerfile详解对中dockerfile有了比较全面的认识,我们也提到ENTRYPOINT和CMD都可以指定容器启动命令.因为这两个命令是掌握do ...

  3. noip12

    T1 类似于昨天的t3,先用单调栈求出管控区间,然后暴力求解30pts 我没取模还没开longlong,然后就爆0了 正解: 仍然是用单调栈求一下区间,用线段树维护一下余数,对于i所对应的区间\([l ...

  4. ASP.NET Core:ASP.NET Core程序使用Docker部署

    一.前言 这篇文章介绍如何将一个ASP.NET Core应用程序在Docker中进行部署.开发工具使用的是Visual Studio 2019和VS Code. 二.使用Docker部署 我们选择新建 ...

  5. 一 &#183; 路由事件的三种方式/策略(冒泡 直接 隧道)

    WPF中的路由事件是沿着VisualTree传递的,作用是用来调用应用程序的元素树上的各种监听器上的处理程序. (1)冒泡,这种事件处理方式是从源元素向上级流过去,直到到达根节点即顶层节点,一般为最外 ...

  6. wpf 实现印章,公章效果

    能写一些特定外观的控件,是一个做界面开发的程序员的基础技能.基本上,不管你是做web,QT,MFC,Winform,WPF等等,如果自己看到一个比较好看的有趣的效果,能大致推断出它的实现方式并照猫画虎 ...

  7. jvm系列(六):jvm调优-工具篇

    ## jdk自带的工具### jconsole Jconsole(Java Monitoring and Management Console)是从java5开始,在JDK中自带的java监控和管理控 ...

  8. 如何使用Git建立本地仓库并上传代码到GitHub

    使用Git建立本地仓库并上传代码到GitHub 工具/原料   电脑安装git客户端.注册github账号并登陆 方法/步骤     到本地项目文件夹右键选择git bash here   输入个人信 ...

  9. jdbc操作mysql(二):封装

    案例四:封装共有操作 封装一个数据库的会话的类 import java.sql.*; public class ConnectionUtil { /** * 获取连接对象的方法,返回一个Connect ...

  10. ES6 promise的应用

    html部分 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <me ...