国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

PHP接口API文檔轉(zhuǎn)換SDK神器

2020-03-22 18:03:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  • PS:GIT版本為開發(fā)調(diào)試版本,不能保證其穩(wěn)定。CSDN的版本為GIT上封裝完最穩(wěn)定的版本,請(qǐng)斟酌下載。

    演示地址:http://222.73.37.41:8001/bbs/document/Example.php?document=truxish4114558de

    效果圖:

    API JSON
    轉(zhuǎn)換TXT文檔
    轉(zhuǎn)換JAVA代碼
    轉(zhuǎn)換SWIFT代碼

    輸出支持:

    TXT文檔JAVASWIFT

    解決問(wèn)題:

    免手寫html' target='_blank'>Word文檔來(lái)告知第三人此API輸出的內(nèi)容字段含義以及需要哪些接收參數(shù),降低溝通成本每次API升級(jí),輸出內(nèi)容都會(huì)打上版本號(hào)以及終端文件。只要在終端項(xiàng)目里面,GIT或者SVN即能看出本次升級(jí)更改的內(nèi)容與終端對(duì)接API接口調(diào)試,成功率提升到100%終端無(wú)需理會(huì)數(shù)據(jù)接口,只需要把大部分的精力用在UI界面上

    功能介紹:

    輸出Txt格式的文檔輸出android端所需要的數(shù)據(jù)解析類以及數(shù)據(jù)請(qǐng)求類輸出ios端所需要的數(shù)據(jù)解析類輸出的數(shù)據(jù)類,包含原生系統(tǒng)自帶的解析方式與第三方自動(dòng)序列化方式(如:GSON)針對(duì)未注釋字段,自動(dòng)英漢翻譯自動(dòng)轉(zhuǎn)換PHP輸出json字段類型,由通用字符串類型自動(dòng)歸類(Int,F(xiàn)loat,Long,String,Boolean)終端語(yǔ)言模板化,可自行更改終端語(yǔ)言輸出模板自動(dòng)根據(jù)字典文件的最后修改日期轉(zhuǎn)換為終端語(yǔ)言文件的版本號(hào),如
    /** * push信息表 * @version 20151105.20.39 * @author HuangYi * @link email:95487710@qq.com * */public class PushInfoData {


    配置文件Config.php:

    翻譯設(shè)置(目前是接入百度翻譯,需要自行去注冊(cè)一個(gè)KEY)
    //百度翻譯KEYdefine("BAIDU_LANGUAGE_APPKEY", "6e87261cf9d883ddc2bc4c629991a087");//啟動(dòng)翻譯模式define("OPEN_LANGUAGE_MODE", true);//翻譯過(guò)濾字段,簡(jiǎn)單說(shuō)就是過(guò)濾那些一看就明白意思的字段define("AZ_LANGUAGE_FILTER", "{id}{date}{clientdate}{sex}");

    JAVA設(shè)置,路徑的設(shè)置是為了讓終端開發(fā)者直接以文件夾形式下載所有接口文件
    //JAVA包名define("JAVA_PACKNAME", "yousi.com.http.data");//JAVA數(shù)據(jù)類保存路徑define("JAVA_DATA_SAVE_PATH", "/java/yousi/com/http/data/");//JAVA HTTP包名define("JAVA_HTTP_PACKNAME", "yousi.com.http");// JAVA請(qǐng)求數(shù)據(jù)類保存路徑define("JAVA_HTTP_DATA_SAVE_PATH", "/java/yousi/com/http/");

    TXT設(shè)置,路徑的設(shè)置是為了讓終端開發(fā)者直接以文件夾形式下載所有接口文件
    //TXT數(shù)據(jù)類保存路徑define("TXT_DATA_SAVE_PATH", "/txt/http/data/");//TXT請(qǐng)求數(shù)據(jù)類保存路徑define("TXT_HTTP_DATA_SAVE_PATH", "/txt/http/");

    SWIFT設(shè)置,路徑的設(shè)置是為了讓終端開發(fā)者直接以文件夾形式下載所有接口文件
    //SWIFT數(shù)據(jù)類保存路徑define("SWIFT_DATA_SAVE_PATH", "/swift/http/data/");//SWIFT請(qǐng)求數(shù)據(jù)類保存路徑define("SWIFT_HTTP_DATA_SAVE_PATH", "/swift/http/");

    SDK接入:

    /**引用類路徑*/include_once(dirname(__FILE__)."/../document_sdk/Element.php");/**以下為API接口測(cè)試數(shù)據(jù)*/$pinfo = array();$pinfo['id']=2;$pinfo['uid']='10086';$pinfo['rid']='10086';$pinfo['money']=100.25;$pinfo['key']='tokendddsxsedfs115';$pinfo['alias']='techer';$pinfo['aliastype']='yousi.com';$pinfo['date']='2015-11-12 15:17:23';$pinfo['clientdate']=1446450068;$pinfo['info']=$info;$pinfo['grade']=$grade;$pinfo['comments']=$comments;$pinfo['userinfo']=$userinfo;/**測(cè)試地址 Example.php?document=truxish4114558de&parse=java*//**<在輸出JSON API接口前面添加以下語(yǔ)句*/document($pinfo,'PushInfoData');/**輸出JSON格式*/Json::echoJson($pinfo);


    其中接口轉(zhuǎn)換文檔參數(shù) document為請(qǐng)求秘鑰,自行更改,加密作用。
    parse為轉(zhuǎn)換類型,目前支持java,swift,txt格式。
    azauto為英漢翻譯開關(guān),true開啟,false關(guān)閉。
    PushInfoData參數(shù)實(shí)為Class.PushInfoData.php簡(jiǎn)參,JSON輸出數(shù)據(jù)解析字典
    字典元素分類 key=>注釋,此用來(lái)標(biāo)示普通字段
    /**API數(shù)據(jù)片段*/$pinfo['rid']='101';/**對(duì)應(yīng)字典寫法*/"rid"=>"回復(fù)ID"
    對(duì)應(yīng)輸出的JAVA代碼片段/** 回復(fù)ID */ public int rid = 0; 

    key=>array(),此用來(lái)標(biāo)示數(shù)組元素又是數(shù)組,如
    /**API數(shù)據(jù)片段*/$comment_data = array();$comment_data['uid'] = 10086;$comment_data['name'] = "大帥";//無(wú)論是多維數(shù)數(shù)組,只需寫一個(gè)維度的字典$comments = array($comment_data,$comment_data);$pinfo['comments']=$comments; /**對(duì)應(yīng)字典寫法*/$comments_keys =array("uid"=>"用戶賬號(hào)","name"=>"昵稱");$keys['comments'] = $comments_keys;

    對(duì)應(yīng)輸出的JAVA代碼片段,從下面看出Comments 類本身沒有注釋 	/** */   	public class Comments {     	/** 用戶賬號(hào) */     	public int uid = 0;     	/** 昵稱 */     	public String name = "";     	public Comments getBase(Context mContext, JSONObject jsonObject) {       	Comments mBase = new Comments();       	try {         	mBase.uid = HttpBase.jsonToInt(jsonObject, "uid");         	mBase.name = HttpBase.jsonToString(jsonObject, "name");       	} catch (Exception e) {         	e.printStackTrace();         	MyLog.d(RerviceHttp.class, "Comments error e:"+e.getMessage());       	}       	return mBase;     	}   	} 


    key=>array(key=>array()),此用來(lái)解決第2條輸出代碼片段沒有注釋,如
    /**API數(shù)據(jù)片段*/$info = array();$info['up'] =1;$info['down'] =1;$pinfo['info']=$info;/**對(duì)應(yīng)字典寫法*/$info_keys = array("基礎(chǔ)信息" => array("up"=>"支持?jǐn)?shù)","down"=>"反對(duì)數(shù)"));$keys["info"]=>$info_keys

    對(duì)應(yīng)輸出的JAVA代碼片段,從下面看出類名為key本身	/** 基礎(chǔ)信息 */   	public Info info = new Info();   	/** 基礎(chǔ)信息 */   	public class Info {     	/** 支持?jǐn)?shù) */     	public int up = 0;     	/** 反對(duì)數(shù) */     	public int down = 0;     	public Info getBase(Context mContext, JSONObject jsonObject) {       	Info mBase = new Info();       	try {         	mBase.up = HttpBase.jsonToInt(jsonObject, "up");         	mBase.down = HttpBase.jsonToInt(jsonObject, "down");       	} catch (Exception e) {         	e.printStackTrace();         	MyLog.d(RerviceHttp.class, "Info error e:"+e.getMessage());       	}       	return mBase;     	}   	}
    ClassElement指定類名元素,此用來(lái)解決第3條指定類名,如
    /**API數(shù)據(jù)片段*/$info = array();$info['up'] =1;$info['down'] =1;$pinfo['info']=$info;/**對(duì)應(yīng)字典寫法*/$info_keys = array("基礎(chǔ)信息" => array("up"=>"支持?jǐn)?shù)","down"=>"反對(duì)數(shù)"));$info_keys = new ClassElement("InfoData",$info_keys);$keys["info"]=>$info_keys

    對(duì)應(yīng)輸出的JAVA代碼片段        /** 基礎(chǔ)信息 */   	public InfoData info = new InfoData();   	/** 基礎(chǔ)信息 */   	public class InfoData {     	/** 支持?jǐn)?shù) */     	public int up = 0;     	/** 反對(duì)數(shù) */     	public int down = 0;     	public InfoData getBase(Context mContext, JSONObject jsonObject) {       	InfoData mBase = new InfoData();       	try {         	mBase.up = HttpBase.jsonToInt(jsonObject, "up");         	mBase.down = HttpBase.jsonToInt(jsonObject, "down");       	} catch (Exception e) {         	e.printStackTrace();         	MyLog.d(RerviceHttp.class, "InfoData error e:"+e.getMessage());       	}       	return mBase;     	}   	} 

    NoteElement指定元素類型,將不會(huì)在自動(dòng)歸類,如
    /**API數(shù)據(jù)片段*/$pinfo['uid']='10086';/**對(duì)應(yīng)字典寫法*/$uid_keys = new NoteElement("用戶UID",Element::TYPE_KEY_STRING);$keys["uid"]=>$uid_keys

    對(duì)應(yīng)輸出的JAVA代碼片段,從下面看出uid自動(dòng)歸類應(yīng)為Int類型,但強(qiáng)制為String類型/** 用戶UID */ public String uid = ""; 

    FileElement指定請(qǐng)求參數(shù)為文件上傳,如
    /**對(duì)應(yīng)請(qǐng)求參數(shù)字典寫法*/$file = new FileElement("文件上傳");$keys['file'] = $file;
    對(duì)應(yīng)輸出的JAVA代碼片段  	/** 文件上傳 */   	public Map mUploadFile = new HashMap();   	public void setfilePath(String mPath) {     	setPath("file", mPath);   	}   	private void setPath(String mKey, String mPath) {     	mUploadFile.put(mKey, new File(mPath));   	}   	@Override   	public Map getSendFile() {     	if (mUploadFile == null || mUploadFile.size() <= 0) {       	return new HashMap();     	}     	return mUploadFile;   	} 

    代碼:http://download.csdn.net/detail/huangbin95487710/9261841

    GIT地址:http://github.com/aixiaoyi123/php_api_document

    PHP編程

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 隆尧县| 乌兰县| 丽江市| 黄骅市| 红安县| 图们市| 定兴县| 安阳县| 江津市| 洛阳市| 邹平县| 县级市| 康保县| 隆安县| 长岛县| 长兴县| 台安县| 江永县| 新昌县| 陆丰市| 台东市| 波密县| 梁平县| 德令哈市| 大庆市| 深圳市| 海南省| 阳原县| 蒙城县| 盐边县| 邵阳市| 咸丰县| 紫阳县| 泸定县| 紫金县| 城固县| 明星| 偏关县| 韶关市| 开封市| 连江县|