用 Flickr API 扩展 Project Zero 和 WebSphere sMash 的脚本平台
2009-11-17 00:00:00 来源:WEB开发网该代码非常棒,但还可以通过利用 Zero 的全局上下文加以改进。将请求和响应数据存储在全局上下文中让开发人员可以更为容易地跨脚本或文件划分进行请求和响应处理;例如,一个服务器端脚本可能会向一个或多个服务发出 API 调用,而同时响应数据则由客户端的模板呈现。清单 4 显示了如何相应处理此用例:
清单 4. “Zero 化” 的 Flickr API 原型 #2request.flickr.method = "flickr.photosets.getPhotos";
request.flickr.params = [
photoset_id: 1234567890,
per_page: 25
];
invokeMethod("flickr.groovy", "flickr"); // uses GC for I/O
def response = request.flickr.response[];
设计好之后,就可以开始编写代码了。在 zero.services.flickr 项目内,在 /app/scripts/flickr.groovy 下创建 Groovy 脚本。第一个要添加到此文件中的方法是清单 3 和 4 中的 flickr() 方法。要实现此方法,需要注意如下三个方面:
Flickr API 调用所需的 URI 格式。
Flickr API 键的值。
外向(outbound) HTTP 请求的 Zero Connection API。
有关 Flickr API 调用所需的 URI 格式的相关内容在 Flickr API 文档可以找到;其本质是为用户所提供的每个请求参数创建一个含查询参数的 URI。此外,还必须包含 API 键,这意味着为了提供此 API 键,必须要有一个约定(以免用户在脚本中硬编码其 API 键)。清单 5 显示了构建这个请求 URI 所需要的代码:
清单 5. 构建 Flickr 请求 URIdef uri = "http://api.flickr.com/services/rest/?format=json&nojsoncallback=1";
uri += "&api_key=${config.flickr.key[]}";
uri += "&method=${request.flickr.method[]}";
request.flickr.params[].each() {
uri += "&${it.key}=${it.value}";
}
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››扩展数据:如何为 Model 750 服务器选择 I/O 扩展...
- ››扩展 JDT 实现自动代码注释与格式化
- ››扩展 secldap 的功能以验证多个数据源
- ››扩展 JUnit4 以促进测试驱动开发
- ››扩展 JUnit 测试并行程序
- ››扩展的ToolStripEx控件
- ››扩展 Eclipse 的 Java 开发工具
- ››扩展 Eclipse 辅助和规范开发流程
- ››扩展方法 DataTable 和List 相互转换
更多精彩
赞助商链接