用groovy写阿里软件的api

看了阿里软件开发的指南,想到用强大groovy脚本语言,应该会很简练。
于是自己写了几个简单的函数用于处理与alisoft平台的连接。

不过在开发的过程中,也发现了alisoft定义的接口还有些问题,maybe 我自己的理解有偏差吧。。

比如对于下述定义:

alisoft.getUsingUser 调用参数

系统级参数

名称 类型 是否必须 描述
sip_appkey string 必须 ISV应用的appkey为软件互联平台分配给ISV应用的唯一编号。
sip_apiname string 必须 服务名。
sip_timestamp string 必须 服务请求时间戳(yyyy-mm-dd hh:mm:ss.xxx),支持毫秒。
sip_sign string 必须 请求签名(包括了对前面三个必选参数和所有业务参数按签名规则做签名)。
sip_sessionid string 可选 在ISV应用中用户会话唯一标识。

应用级参数

名称 类型 是否必须 描述
appInstanceId string 必须 应用实例ID,一般与应用中的公司ID一一对应


如果仅仅把上述传入后做signature的话,得到的签名是无效的,必须要把所有的参数都传入才可以。

整个库中比较关键的是 alisoftutils这个类的getUrl方法 用以构造请求的url string
def getUrl(String methodName, Map params, String sessionid, String appkey, String appsecret, String base){
def qs = [:]

// system
qs.sip_appkey = appkey
qs.sip_apiname = methodName
qs.sip_timestamp = Constants.SIP_TIMESTAMP_FORMATER.format(new Date())

// application
qs.userId = params.user_id
qs.appInstanceId = params.app_instance_id
qs.token = params.token

//optional
qs.sip_sessionid = sessionid
qs.appId = params.app_id

qs.sip_appsecret = appsecret;
String sip_sign= SignatureUtil.Signature(qs, appsecret);
qs.sip_sign = sip_sign

def urlStr = []

qs.each{ urlStr << it.key + "=" + URLEncoder.encode(it.value,"gbk") }

return new URL(base + urlStr.join("&"))
}

在处理alisoft返回值得时候 我也简化了 没有考虑response的status变量 ,这和alisoft官方提供的jar包处理有区别,anyway,也许我这么处理是有隐患的。

最后demo顺利调试成功,还需要继续完善~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值