精通Grails: RESTful Grails - 编程入门网
L 输出支持。图 1 展示了调用 xmlList 操作的结果:
图 1. 来自于 Grails 的默认 XML 输出 精通Grails: RESTful Grails(4)时间:2011-07-29 IBM Scott Davis虽然默认的 XML 输出很好调试,但您还是想稍微自定义一下格式。还好,render() 方法给您提供了 一个 Groovy MarkupBuilder,它允许您动态定义自定义 XML。清单 2 创建了一些自定义 XML 输出: 清单 2. 自定义 XML 输出
图 2 展示了输出结果: 图 2. 使用 Groovy MarkupBuilder 的自定义 XML 输出 注意源代码和 XML 输出之间的对应的紧密程度。您可以随意定义元素名称(airports、airport、 city),无需顾及它们是否与类的真实字段名称对应。如果您想提供一个以连字符链接的元素名称的话( 诸如 official-name),又或者想要添加名称空间支持的话,只要给元素名称加上引号就可以了。而属性 (诸如 id 和 iata)是用 Groovy 散列映射键:值 语法定义的。要填充元素的正文,需要提供一个不带 键:的值。 精通Grails: RESTful Grails(5)时间:2011-07-29 IBM Scott Davis内容协商与 Accept 报头 创建一个返回数据的 HTML 和 XML 表示的单独闭包是很简单的,但如果想创建一个既可以返回 HTML 又可以返回 XML 表示的闭包的话,该怎么办呢。这也是可以实现的,这要多亏在 HTTP 请求中包含有 Accept 报头。这个简单的元数据告诉服务器:“嗨,您对这个 URI 中的资源可能有不只一个资源表示 — 我更喜欢这个。” cURL 是一个方便的开源命令行 HTTP 工具。在命令行输入 curl http://localhost:9090/trip/airport/list ,以此来模拟请求机场列表的浏览器请求。您应该会看到 HTML 响应展现在您的荧屏上。 现在,对请求做两处小小的变动。这回,代替 GET 发出一个 HEAD 请求。HEAD 是一个标准 HTTP 方 法,它仅仅返回响应的元数据,而不返回正文(您现在正在进行的调试的类型包含在 HTTP 规范中)。另 外,将 cURL 放置于 verbose 模式,这样您就也能够看到请求元数据了,如清单 3 所示: 清单 3. 使用 cURL 来调试 HTTP
注意请求中的 Accept 报头。客户机要是提交 */* 的话,就意味着:“返回什么样的格式都无所谓。 我将接受任何内容。” cURL 允许您使用这个值来覆盖 --header 参数。输入 curl --request HEAD --verbose --header Accept:text/xml http://localhost:9090/trip/air |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |