首页 > 编程 > PHP > 正文

PHP接口API文档转换SDK神器

2020-03-22 18:03:16
字体:
来源:转载
供稿:网友
  • PS:GIT版本为开发调试版本,不能保证其稳定。CSDN的版本为GIT上封装完最稳定的版本,请斟酌下载。

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

    效果图:

    API JSON
    转换TXT文档
    转换JAVA代码
    转换SWIFT代码

    输出支持:

    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设置,路径的设置是为了让终端开发者直接以文件夹形式下载所有接口文件
    //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设置,路径的设置是为了让终端开发者直接以文件夹形式下载所有接口文件
    //TXT数据类保存路径define("TXT_DATA_SAVE_PATH", "/txt/http/data/");//TXT请求数据类保存路径define("TXT_HTTP_DATA_SAVE_PATH", "/txt/http/");

    SWIFT设置,路径的设置是为了让终端开发者直接以文件夹形式下载所有接口文件
    //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);


    其中接口转换文档参数 document为请求秘钥,自行更改,加密作用。
    parse为转换类型,目前支持java,swift,txt格式。
    azauto为英汉翻译开关,true开启,false关闭。
    PushInfoData参数实为Class.PushInfoData.php简参,JSON输出数据解析字典
    字典元素分类 key=>注释,此用来标示普通字段
    /**API数据片段*/$pinfo['rid']='101';/**对应字典写法*/"rid"=>"回复ID"
    对应输出的JAVA代码片段/** 回复ID */ public int rid = 0; 

    key=>array(),此用来标示数组元素又是数组,如
    /**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;     	}   	} 


    key=>array(key=>array()),此用来解决第2条输出代码片段没有注释,如
    /**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;     	}   	} 

    NoteElement指定元素类型,将不会在自动归类,如
    /**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 = ""; 

    FileElement指定请求参数为文件上传,如
    /**对应请求参数字典写法*/$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编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表