演示地址:http://222.73.37.41:8001/bbs/document/Example.php?document=truxish4114558de
效果圖:
API JSON輸出支持:
TXT文檔JAVASWIFT解決問題:
免手寫html' target='_blank'>Word文檔來告知第三人此API輸出的內容字段含義以及需要哪些接收參數,降低溝通成本每次API升級,輸出內容都會打上版本號以及終端文件。只要在終端項目里面,GIT或者SVN即能看出本次升級更改的內容與終端對接API接口調試,成功率提升到100%終端無需理會數據接口,只需要把大部分的精力用在UI界面上功能介紹:
輸出Txt格式的文檔輸出android端所需要的數據解析類以及數據請求類輸出ios端所需要的數據解析類輸出的數據類,包含原生系統自帶的解析方式與第三方自動序列化方式(如:GSON)針對未注釋字段,自動英漢翻譯自動轉換PHP輸出json字段類型,由通用字符串類型自動歸類(Int,Float,Long,String,Boolean)終端語言模板化,可自行更改終端語言輸出模板自動根據字典文件的最后修改日期轉換為終端語言文件的版本號,如/** * push信息表 * @version 20151105.20.39 * @author HuangYi * @link email:95487710@qq.com * */public class PushInfoData {
配置文件Config.php:
翻譯設置(目前是接入百度翻譯,需要自行去注冊一個KEY)//百度翻譯KEYdefine("BAIDU_LANGUAGE_APPKEY", "6e87261cf9d883ddc2bc4c629991a087");//啟動翻譯模式define("OPEN_LANGUAGE_MODE", true);//翻譯過濾字段,簡單說就是過濾那些一看就明白意思的字段define("AZ_LANGUAGE_FILTER", "{id}{date}{clientdate}{sex}");
//JAVA包名define("JAVA_PACKNAME", "yousi.com.http.data");//JAVA數據類保存路徑define("JAVA_DATA_SAVE_PATH", "/java/yousi/com/http/data/");//JAVA HTTP包名define("JAVA_HTTP_PACKNAME", "yousi.com.http");// JAVA請求數據類保存路徑define("JAVA_HTTP_DATA_SAVE_PATH", "/java/yousi/com/http/");
//TXT數據類保存路徑define("TXT_DATA_SAVE_PATH", "/txt/http/data/");//TXT請求數據類保存路徑define("TXT_HTTP_DATA_SAVE_PATH", "/txt/http/");
//SWIFT數據類保存路徑define("SWIFT_DATA_SAVE_PATH", "/swift/http/data/");//SWIFT請求數據類保存路徑define("SWIFT_HTTP_DATA_SAVE_PATH", "/swift/http/");
SDK接入:
/**引用類路徑*/include_once(dirname(__FILE__)."/../document_sdk/Element.php");/**以下為API接口測試數據*/$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;/**測試地址 Example.php?document=truxish4114558de&parse=java*//**<在輸出JSON API接口前面添加以下語句*/document($pinfo,'PushInfoData');/**輸出JSON格式*/Json::echoJson($pinfo);
/**API數據片段*/$pinfo['rid']='101';/**對應字典寫法*/"rid"=>"回復ID"
對應輸出的JAVA代碼片段/** 回復ID */ public int rid = 0;
/**API數據片段*/$comment_data = array();$comment_data['uid'] = 10086;$comment_data['name'] = "大帥";//無論是多維數數組,只需寫一個維度的字典$comments = array($comment_data,$comment_data);$pinfo['comments']=$comments; /**對應字典寫法*/$comments_keys =array("uid"=>"用戶賬號","name"=>"昵稱");$keys['comments'] = $comments_keys;
對應輸出的JAVA代碼片段,從下面看出Comments 類本身沒有注釋 /** */ public class Comments { /** 用戶賬號 */ 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數據片段*/$info = array();$info['up'] =1;$info['down'] =1;$pinfo['info']=$info;/**對應字典寫法*/$info_keys = array("基礎信息" => array("up"=>"支持數","down"=>"反對數"));$keys["info"]=>$info_keys
對應輸出的JAVA代碼片段,從下面看出類名為key本身 /** 基礎信息 */ public Info info = new Info(); /** 基礎信息 */ public class Info { /** 支持數 */ public int up = 0; /** 反對數 */ 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指定類名元素,此用來解決第3條指定類名,如
/**API數據片段*/$info = array();$info['up'] =1;$info['down'] =1;$pinfo['info']=$info;/**對應字典寫法*/$info_keys = array("基礎信息" => array("up"=>"支持數","down"=>"反對數"));$info_keys = new ClassElement("InfoData",$info_keys);$keys["info"]=>$info_keys
對應輸出的JAVA代碼片段 /** 基礎信息 */ public InfoData info = new InfoData(); /** 基礎信息 */ public class InfoData { /** 支持數 */ public int up = 0; /** 反對數 */ 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數據片段*/$pinfo['uid']='10086';/**對應字典寫法*/$uid_keys = new NoteElement("用戶UID",Element::TYPE_KEY_STRING);$keys["uid"]=>$uid_keys
對應輸出的JAVA代碼片段,從下面看出uid自動歸類應為Int類型,但強制為String類型/** 用戶UID */ public String uid = "";
/**對應請求參數字典寫法*/$file = new FileElement("文件上傳");$keys['file'] = $file;
對應輸出的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編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答