用 Flickr API 扩展 Project Zero 和 WebSphere sMash 的脚本平台
2009-11-17 00:00:00 来源:WEB开发网请注意清单 5 中已经硬编码了基本的 Flickr URI 并使用了 JSON 数据结构 — 这些不应更改。还有,这个 API 键是从一个名为 config.flickr.key 的全局上下文属性中读取的;我们将要求用户在其应用程序配置文件中设置这个值以鼓励好的编程实践。清单 5 代码中最后一点需要注意的是 Groovy 的语法技巧是如何简化将 JSON 对象(映射)转变为有效 URI 的过程的。通过使用嵌入式变量和 each() 方法来在此映射上进行迭代,用五行非常易读的代码,我们就创建了一个相当复杂的 URI。
一旦有了 URI,只需使用 Zero 的 Connection API 发送请求即可。幸运的是,这个 API 有很多简便的方法来调用 RESTful 服务。清单 6 中的代码做了这样一个 HTTP GET 请求并以 JSON 解析了相应的响应:
清单 6. 处理 Flickr 请求def response = Connection.doGET(uri);
def json = response.getResponseBodyAsString();
request.flickr.response = JSONObject.parse(json);
对于此项目,我们假设所有操作都是 GET(读取);所提供的代码可以很容易地扩展到 POST(写入),但这超出了本文的范围。
整个 flickr() 方法是由清单 5 和 6 中的代码组成的,也可以在本文所附的示例项目下载中得到。如果在将两个清单合并成一个可用函数方面遇到任何麻烦,可以参考下载中的 flickr.groovy 文件。
创建照片 URL
调用方法只是用户将 Flickr 数据合并到应用程序中的所有工作中的一部分。一旦有了一个或更多照片的元数据,用户将需要创建到由 Flickr 用户共享的这个实际图像文件的 URL。图像文件 URL 不包括在 JSON 响应数据中 — 必须用 Flickr 提供的格式化指令将它们合并 ;因为这些 URL 通常很长并且包括很多变量,为了能从 JSON 响应中构建这些 URL,需要有一些简便的方法。
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››扩展数据:如何为 Model 750 服务器选择 I/O 扩展...
- ››扩展 JDT 实现自动代码注释与格式化
- ››扩展 secldap 的功能以验证多个数据源
- ››扩展 JUnit4 以促进测试驱动开发
- ››扩展 JUnit 测试并行程序
- ››扩展的ToolStripEx控件
- ››扩展 Eclipse 的 Java 开发工具
- ››扩展 Eclipse 辅助和规范开发流程
- ››扩展方法 DataTable 和List 相互转换
赞助商链接