演示地址:http://222.73.37.41:8001/bbs/document/Example.php?document=truxish4114558de
效果圖:
API JSON



輸出支持:
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包名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ù)據(jù)類保存路徑define("TXT_DATA_SAVE_PATH", "/txt/http/data/");//TXT請(qǐng)求數(shù)據(jù)類保存路徑define("TXT_HTTP_DATA_SAVE_PATH", "/txt/http/");//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);
/**API數(shù)據(jù)片段*/$pinfo['rid']='101';/**對(duì)應(yīng)字典寫法*/"rid"=>"回復(fù)ID"
對(duì)應(yīng)輸出的JAVA代碼片段/** 回復(fù)ID */ public int rid = 0;
/**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; } } /**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; } } /**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 = "";
/**對(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)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選