YAPI manages api updates and version iterations through files (java version)

yapiApp

introduce

Software Architecture

Software Architecture Description

Installation Tutorial

  1. Modify the constant HOST in the YapiApp class to your own server address
  2. Modify the constant TOKEN in the YapiApp class to the token of your own project
  3. Define your own api in demo.xml

Instructions for use

  1. Just run the main method in YapiApp

Parameter Description

<ApiInfo>
    <desc>案例</desc><!-- 文件夹介绍 -->
    <name>demo</name><!-- 文件夹名称 如果不存在会自动创建 -->
    <apis>
        <api>
            <path>/test3</path><!-- 请求路径 -->
            <title>测试233</title><!-- 标题 -->
            <uid>11</uid><!-- 更新人,这里11 -->
            <tag>5</tag><!-- 版本 这里会记录 最多10个 tag 版本迭代 -->
            <reqHeaders><!-- 请求参数头 "()" 里面是需要填写的参数描述,描述里面带"!" 即 不是必须的 -->
                {"aaa(测-aaa)":123,"bbb(测-bbb)":345}
            </reqHeaders>
            <reqQuery><!-- 请求参数 "()" 里面是需要填写的参数描述  描述里面带"!" 即 不是必须的 -->
                {"aaa(测-aaa)":123,"bbb(测-bbb)":345}
            </reqQuery>
            <resBody><!-- 标准JSON格式返回值,只需要在 key 加入 "(key的描述)"-->
                {
                    "ccc(用话ID)":{
                        "ccc-1(测ccc-1)":[
                            {
                                "a":1,
                                "b":[{"b-1":"a"}]
                            }
                        ],
                        "ccc-2":"1792318200684396.8"
                    }
                }
            </resBody>
            <method>GET</method><!-- 请求协议 "-->
        </api>
    </apis>
</ApiInfo>

TOKEN setting reference

#####Pre-request Script (request parameter processing script)

//设置 cookies
function setCookie(name,value) 
{ 
    var Days = 30; 
    var exp = new Date(); 
    exp.setTime(exp.getTime() + Days*24*60*60*1000); 
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
} 

//读取cookies 
function getCookie(name) 
{ 
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
 
    if(arr=document.cookie.match(reg))
 
        return unescape(arr[2]); 
    else 
        return null; 
}

//设置时间唯一token
var userTimeToken = getCookie('userTimeToken');
if(!userTimeToken){
    var time = new Date().getTime();
    setCookie('userTimeToken',time);
    userTimeToken = time;
}


//处理  token 值
let mock='/mock/'+context.projectId;
if(context.pathname.indexOf(mock) != -1){
    //mock 接口不做任何处理
    
}else {
    var token = storage.getItem('token-----'+userTimeToken);
    context.requestHeader.Tokensd=token;
}

Pre-response Script (response data processing script)

//设置 cookies
function setCookie(name,value) 
{ 
    var Days = 30; 
    var exp = new Date(); 
    exp.setTime(exp.getTime() + Days*24*60*60*1000); 
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
} 

//读取cookies 
function getCookie(name) 
{ 
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
 
    if(arr=document.cookie.match(reg))
 
        return unescape(arr[2]); 
    else 
        return null; 
}

//登录完成后设置值
if (context.pathname.indexOf('/sys/login') != -1) {
	// 登录接口不需要设置
	context.requestHeader.Authorization = null;
	
	//生成时间token
	var userTimeToken = getCookie('userTimeToken');
    if(!userTimeToken){
        var time = new Date().getTime();
        setCookie('userTimeToken',time);
        userTimeToken = time;
    }
	
	var code = context.responseData.code;
	console.log(context.responseData);
	if(code==200){
	    var token = context.responseData.data.token;
	    storage.setItem('token-----'+userTimeToken, token);
	}
}

Guess you like

Origin blog.csdn.net/qq_24796239/article/details/102515802