`
leochan007
  • 浏览: 19363 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用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顺利调试成功,还需要继续完善~ 
分享到:
评论
1 楼 JohnnyJian 2009-07-23  
这3行:
def urlStr = []
qs.each{ urlStr << it.key + "=" + URLEncoder.encode(it.value,"gbk") }
return new URL(base + urlStr.join("&")) 


可以1行搞定:
(base + qs.collect { k, v -> "$k=${encode(v,'gbk')}" }.join("&")).toURL()

相关推荐

    groovy-3.0.9-API文档-中文版.zip

    赠送jar包:groovy-3.0.9.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    groovy-2.5.1-API文档-中文版.zip

    赠送jar包:groovy-2.5.1.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    groovy-all-2.4.13-API文档-中文版.zip

    赠送jar包:groovy-all-2.4.13.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    groovy1.7.0api chm格式

    groovy1.7.0api chm格式

    groovy-api-chm

    groovy-api-chm

    groovy-3.0.9-API文档-中英对照版.zip

    使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    groovy-2.5.1-API文档-中英对照版.zip

    使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    groovy api 资料 自学文档

    groovy api 资料 自学文档,

    groovy-2.1.1api.chm

    最近想学一下Groovy,网上只找到1.7版本的api(chm),只好自己从groovy下载apidocs文档包,然后自己生成了chm文件

    JUN SpringBoot API Service 是一个基于SpringBoot+Groovy+SQL动态生成API

    JUN SpringBoot API Service 是一个基于SpringBoot+Groovy+SQL动态生成API并动态发布,且发布后可动态执行groovy脚本及SQL脚本的API服务项目。提供在线执行动态程序脚热加载本及动态生成API并执行的功能。支持动态...

    groovy语言api

    Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有...

    Groovy api

    自己在用,很实用。这个文档也是我在网上找的

    Groovy API docs 2.4.15 (CHM格式)

    Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 ...

    groovy-all-2.4.5-API文档-中文版.zip

    赠送jar包:groovy-all-2.4.5.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    groovy 1.5.5 API

    groovy API chm 文档,方便开发是查询API。

    Groovy学习资料(包括Groovy in action 的中英文以及API)

    Groovy in action 中英文,API

    Groovy教程.7z

    Groovy 是一种基于Java平台的面向对象语言。Groovy 的语法和 Java 非常的相似,可以使用现有的 Java 库来进行 Groovy 开发。可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。

    rexsee文档和api使用groovy爬下来分享给大家

    NULL 博文链接:https://key232323.iteye.com/blog/1779445

Global site tag (gtag.js) - Google Analytics