bifa365必发通用接口的计划性与贯彻attilax

 

Atitit 通用接口的规划与贯彻attilax 总计

 

一.壹.
留存的景色壹

一.二.
接口重回类型,与再次回到类别化格式1

一.三.
老大传递 代替重临值情势一

1.四.
通用接口原理一

1.5.
Autoit
 Autohotkey的模式2

壹.6.
通用版全职能接口http param形式  范例 ( 能够使用于别的场地)贰

1.7.
通用版数据sql接口
(快捷支付接口,适用与内部人士操作模块)三

壹.八.
通用版数据sp存款和储蓄进度调用接口
(火速支付接口,适用于别的地方)三

一.9.
骨干代码四

一.十.
前途的展望 dsl 格局5

 

1.1. 留存的情景

接口不够通用,每扩张多个接口,就须要扩大1个配置也许注明。

亟需2个通用接口,,每扩张一个子接口,无需做此外的布局和注释

 

其次对于数据库操作,3gl接口相比较繁琐 ,扩充了四gl dsl sql sp接口

 

说不上,接口的重临值模型。。能够选取十二分模型代替

 

1.2. 接口重临类型,与重临种类化格式

回去类型类型正是str int等,援助复杂格式map
list,以及对象。

回来体系化格式,正是结果使用什么的连串化重返结果。。协理json ,猜想还要援救xml yaml

 

1.3. 充足传递 代替重临值方式

不行拥有比再次来到值越来越好的拍卖格局。

非常连串化为钦赐的连串化格式重临,传递给调用端。。

1.4. 通用接口原理

 直接指明要调用的类与办法名。后台通过反射的方式调用。。

类似 pinvoke , jna 模式

1.5. Autoit  Autohotkey的模式 

DllCall
( “dll”, “再次来到值类型”, “函数名称” [, 类型1, 参数1[, 类型n, 参数n]]
)

AutoIt中的参数类型与Win3二API中的参数类型齐镳并驱,这点要留心。

Autohotkey

Result :=
DllCall(“[DllFile/]Function” [, Type1, Arg1, Type2, Arg2, “Cdecl
ReturnType”])

1.6. 通用版全职能接口http param情势  范例 ( 能够行使于任何场地)

 

http://localhost:8080/AjaxJsbridge\_HttpparamMode\_servlet?m=com.attilax.rest.Class4test.m1&p1=123

 

 

createmode参数:   类的创设情势 暗许为动态new成立形式

。静态类的格局调用 为static

动态类,暗中认可值,或许使用new

m:或然method ,指明要调用的诀窍,全类名加方法名,比如com.attilax.rest.Class四test.m1

retType:重回数据类型int str map list obj等

retFmt:重临数据连串化格式,壹般为json,也可以为none,xml,私下认可为json

P1_type :第多个参数类型 有str int 等,私下认可为str

P1:第一个参数

P2_type:第三个参数类型

P贰:首个参数

iocFac:ioc工厂:援救spring guice new 工厂方式,私下认可为com.attilax.rest.JavaNewCreatorFac

morennew 工厂格局为 com.attilax.rest.JavaNewCreatorFac

 

特点::

专职能接口。

付出成效不是参天

1.7. 通用版数据sql接口 (快捷支付接口,适用与内部人士操作模块)

http://localhost:8080/AjaxJsbridge\_HttpparamMode\_servlet?m=com.attilax.db.DbServiceV4qb9.executeQuery&p1=select+\*+from+ecs\_users+limit+10&iocFac=com.attilax.ioc.Ioc4other

 

bifa365必发,瞩目:此数量接口是为快捷支付而设置的,直接动用sql
dsl存取数据,方便快速。适用于后端管理,以及内部管理系统模块,适用于用户特定以及当中用户的模块。不适用于面向附近不特定用户的模块。。

 

面向广大不特定用户的模块需求隐藏sql,传递sql语句id即可,具体的sql语句应该储存在储存进度,代码只怕安排文件之中
。。要求运用存款和储蓄进度接口或别的接口即可

 

特点::

 开发作用1般最高

  非专职能接口,只针对数据操作接口。其次,不适用于面向大芸芸众生士动用的模块。

 

 

1.8.  通用版数据sp存款和储蓄进度调用接口 (快捷支付接口,适用于任何场馆)

调用存款和储蓄进度mysql,便是使用一定sql语句,call 调用存款和储蓄进程即可,比如call
`sp_查询用户`(‘mer’)。。

 

 

 

http://localhost:8080/AjaxJsbridge\_HttpparamMode\_servlet?m=com.attilax.db.DbServiceV4qb9.executeQuery&p1=call+%60sp\_%E6%9F%A5%E8%AF%A2%E7%94%A8%E6%88%B7%60%28%27mer%27%29&iocFac=com.attilax.ioc.Ioc4other

 

即是p1参数为 call
`sp_询问用户`(‘mer’)。。  ,注意url参数的urlencode编码

 

特点::

 开发作用较高

 非全职能接口,只针对数据操作接口。

 

 

1.9. 基本代码

 

@Override

public void service(ServletRequest req, ServletResponse response) {

try {

HttpServletRequest req2 = (HttpServletRequest) req;

Global.req.set(req2);

 

String iocx =get_iocFac( req.getParameter("iocFac"));

String class_meth_full = (getMeth(req));

String cls =refx.getClassName(class_meth_full);

String meth_name=refx.getMethodName(class_meth_full);

 

Class c = Class.forName(cls);

 

List<Object> params = Lists.newArrayList();

for (int i = 1; i < 7; i++) {

String pname = "p" + i;

if (req.getParameter(pname) == null)

continue;

 

String p = req.getParameter(pname);

String ptype = getPtype(req, pname);

Object p_obj=getP(p,ptype);

params.add(p_obj);

 

}

Object[] p_a = params.toArray();

String createmode =req.getParameter("createmode");

Object rzt;

if(isStaticMode(createmode))

{

rzt = MethodUtils.invokeStaticMethod(c, meth_name, p_a);

}

else//def is new

{

Object cls_obj = com.attilax.reflect.MethodUtils.invokeStaticMethod(iocx, "getBean", c);

  rzt = MethodUtils.invokeMethod(cls_obj, meth_name, p_a);

}

System.out.println(rzt);

// Object r = new DslParser().parseV3(req2.getParameter("dsl"));

if (req.getParameter("retFmt") != null) {

if (req.getParameter("retFmt").equals("json"))

response.getWriter().println(AtiJson.toJson(rzt)); // �벻Ҫ�޸Ļ�ɾ��

else

response.getWriter().println(rzt.toString()); // �벻Ҫ�޸Ļ�ɾ��

catch (Exception e) {

logger.error("–err", e);

logger.error("–err2", AtiJson.toJson(e));

filex.save_safe(core.getTrace(e), "c:\\0rechglog\\" + filex.getUUidName() + ".log");

ExUtil.throwExV2(e);

}

 

}

 

 

1.10. 前程的展望 dsl 情势

直接支持java表达式,http://xxxxxx/api?dsl=new com.xxx.userservice().reg()

 

第3前行,援救方法链

 

 

 

 

 

 

 

小编:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王”伯德 Catcher  kok  虔诚者Pious 教派信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak 万兽之王

简称:: 埃米尔 Attilax Akbar 埃米尔 阿提拉克斯 Ake巴

姓名::埃米尔 Attilax Akbar bin Mahmud
bin  attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 Ake巴 本 马哈茂德 本 阿提拉
本 Solomon 本亚当  阿尔 拉帕努伊

常用名:艾提拉(艾龙),
 EMAIL:1466519819@qq.com

 

 

职称:uke总部o2o总管,全世界网格化项目创办人,

uke交友好社团会会长  uke捕猎协会会长 埃米尔 Uke部落首席大酋长,

 

uke教派与知识融合事务部省长, uke宗教改正委员会副主席

uke制度与第二会议委员会司长,uke保卫安全部首席大队长,uke制度检查委员会副会长,

 

uke 首席cto   软件部门主任 技术部副高级管  研发部门首席执行官组长 产品部副老总 项目部副首席营业官   uke科学技术探讨院秘书长 uke软件培养和演习大师

 

uke波莉尼西亚区大区连锁理事汤加王国区域公司主 uke克尔格伦群岛区连锁监护人,Ryan群岛区连锁管事人,uke布维岛和南吉优rge亚和南桑威奇群岛大区连锁管事人

 Uke软件条件组织管事人长管事人长 Uke 数据库与存款和储蓄标准化组织副会长

 

uke生平农高校副校长   Uke医院 与理大学方面包车型大巴波特兰开拓者(Portland Trail Blazers)

 uec高校校长, uecip图像处理机器视觉专业系经理   uke文档检索专业系首席营业官

Uke图像处理与机具视觉高校首席省长

Uke 户外运动组织监护人长  度假村首席大科长  uke出版社编辑总编辑

 

转发请注解来源:attilax的专辑  ?http://www.cnblogs.com/attilax/

–Atiend  v8

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注