wangdingfu / fu-api-doc-plugin

【Fu Doc】是一个idea插件 可以根据代码一键生成接口文档、一键发起http请求、一键同步接口文档至YApi、ShowDoc、ApiFox等第三方文档系统。你的 ⭐️ ⭐️⭐️Star⭐️⭐️ ⭐️,是我持续维护的动力!如果你觉得还不错,请点上一颗小星星
http://www.fudoc.cn
Apache License 2.0
74 stars 8 forks source link

【前置脚本】投稿 #18

Open wangdingfu opened 1 year ago

wangdingfu commented 1 year ago

大家可以在这里贴上你们认为比较好的前置脚本示例

wangdingfu commented 1 year ago

前置脚本示例:

其中发起的请求 #1 可以自己配置上你们获取token的接口即可


//定义常量 便于下方使用
const accessToken = "access_token";
const expireTime = "expire_time";

//获取当前时间
const currentTime = new Date().getTime();
//从全局请求头中获取access_token
const access_token = fu.header(accessToken);
if (access_token === null || access_token === undefined || access_token === '' || access_token.trim().length === 0) {
    //不存在access_token 则需要调用登录接口获取token
    login();
} else {
    //存在token 则判断token是否过期 从全局变量中获取过期时间
    const expire_time = fu.variable(expireTime);
    //如果当前时间超过超时时间 则认为已过期
    if (currentTime > expire_time) {
        //需要调用接口获取token
        login();
    }
}

/**
 * 登录接口 从服务端获取新的token
 */
function login() {
    //通过fu.doSend('')可以发起http请求 需要指定发起哪一个请求 具体请求在脚本右侧【新增http请求配置】添加
    const result = JSON.parse(fu.doSend('#1'));
    //将接口响应的token保存到全局请求头中
    fu.setHeader(accessToken, result.data.token);
    //设置过期时间到全局变量中 避免每次请求都调用登录方法
    fu.setVariable(expireTime, currentTime + 3600 * 1000);
}