YAPI はファイルを通じて API の更新とバージョンの反復を管理します (Java バージョン)

ヤピアプリ

導入

ソフトウェアアーキテクチャ

ソフトウェアアーキテクチャの説明

インストールチュートリアル

  1. YapiApp クラスの定数 HOST を独自のサーバー アドレスに変更します。
  2. YapiApp クラスの定数 TOKEN を独自のプロジェクトのトークンに変更します。
  3. 独自のAPIをdemo.xmlで定義します。

使用説明書

  1. YapiApp で main メソッドを実行するだけです

パラメータの説明

<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設定リファレンス

#####Pre-request 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(レスポンスデータ処理スクリプト)

//设置 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);
	}
}

おすすめ

転載: blog.csdn.net/qq_24796239/article/details/102515802