演示地址: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编程郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答