使用 Google Charts、Ajax 和 Project Zero(WebSphere sMash)创建精巧的 mashup
2009-11-17 00:00:00 来源:WEB开发网清单 4. Groovy 绑定的配置
/config/bindings/.groovy += ["zero.charts.ChartsBindings"]
通过 HTTP POST 请求图表
现在,您有了 URL 构造代码,接下来只需使用一个 RESTful API 来公开它。为此,您将创建一个名为 charts 的 RESTful 资源类型,并使用 HTTP POST 方法接受图表规范(使用 JSON)并返回图表 URL。这个行为与 RESTful 应用程序中通常实现的行为稍微有些不同。通常,HTTP POST 会导致代码的执行,该代码在与请求 URI 相同的域中创建一个资源,并返回那个新资源的 URI。您将通过构造一个指向 Google Charts 服务的 URI 来 “创建” 一个资源,当客户机访问那个 URI 时,将得到图表。因此,您的服务真正创建并返回的惟一的内容就是一个图表 URI,该 URI 位于 HTTP 响应的 Location 报头中。
清单 5 展示了 charts 资源的 Groovy 代码。它的惟一的 HTTP 方法是 POST,该方法是在 onCreate() 方法中实现的。您应该将该代码复制到一个名为 /zero.charts/app/resources/charts.groovy 的文件中。
清单 5. 用于图表创建的 REST API
import zero.json.Json;
/**
*
* @success 201 Returns the URI for the desired chart in the Location header.
* @error 500 The chart definition in the request body was not valid JSON.
* @format application/json
*
*/
def onCreate()
{
def chart = Json.decode(request.input[]);
def chartImageURL = create(chart);
request.headers.out.Location = chartImageURL;
request.status = 201;
}
更多精彩
赞助商链接