使用Groovy访问豆瓣API
今天心血来潮突然想试试用groovy访问一个OpenAPI,思考n纳秒后,决定拿豆瓣API来练练.
根据豆瓣API文档 http://www.douban.com/service/apidoc/reference/ 上的描述,表明可以通过简单的HTTP GET请求搜索豆瓣上的图书信息. 查询通过 tag,start-index,max-results三个参数分别传递 标签名称,返回结果的开始索引和返回的最大结果数来获取以ATOM或Json的形式返回的结果集,现在我只要求返回ATOM的结果就行了,那么 要获取一个查找图书的结果,需要发出这样的 HTTP GET请求:http://api.douban.com/book/subjects?tag=tagname&start-index=startindex&max-results=maxresult
好,现在就用一段简单的groovy代码来实现吧,
创建一个名为 doubanBooksSeachCli.groovy的文件
if(args){ tagname=args[0] startindex=args[1] maxresult=args[2] addr="http://api.douban.com/book/subjects?tag=${tagname}&start-index=${startindex}&max-results=${maxresult}" feed=new XmlSlurper().parse(addr) feed.entry.each{ println it.title println it.author.name println '-'*30 } }else{ println 'USGAE: groovy douban books search cli' }
使用Groovy 的 XmlSlurper 工具类可以很方便的操作XML数据,运用groovy的元编程能力,也可以使用obj.attribute的方式操作XML的标签.
然后,在命令行下输入 >groovy doubanBooksSeachCli.groovy groovy 1 10
查找标签名称为 groovy, 开始索引为1,最大返回结果为10的所有图书的标题和作者,返回结果如下:
Groovy in Action
Dierk KoenigAndrew GloverPaul KingGuillaume LaforgeJon Skeet
------------------------------
Grails入门指南
【美】Jason Rudolph
------------------------------
Groovy入门经典
(
英)巴克莱(Barclay,K.)(英)萨维奇(Savage,J.)
------------------------------
Groovy Recipes
Scott Davis
------------------------------
Grails in Action
Glen SmithPeter Ledbrook
------------------------------
Grails权威指南
(美)瑞切(Rocher,G.K.)
------------------------------
Groovy and Grails Recipes
Bashar Abdul Jawad
------------------------------
The Definitive Guide to Grails (Definitive Guide)
Graeme Rocher
------------------------------
Programming Groovy
Venkat Subramaniam
------------------------------
Beginning Groovy and Grails
Christopher M. JuddJoseph Faisal NusairatJim Shingler
------------------------------
这段脚本只用了几行代码就完成了我的心血来潮, 现在再看看过去写的java代码,我想我还是宁愿用groovy替代它吧..
浙公网安备 33010602011771号