0

目前我正在使用 GGTS 3.6.0 开发 grails 2.4.3

要求- grails Web 服务如何工作。

现有- 目前我的关闭作为 Web 服务为我工作,但输出是特定于格式的(一次 JSON 或 XML)。

问题- 在闭包(网络服务)中,我如何能够返回 JSON/XML 和其他格式。

关闭代码-

def able_Webservice = {

   ableService.populateAbleBean(ableBean);
   ableService.settingWhereClause(ableBean);
   ableService.getDBData(ableBean);
   def jsonData = ableService.webservice_Data(ableBean);
   render jsonData as JSON

}   
4

2 回答 2

2

Grails 具有withFormat功能。您可以根据传入的请求 Accept 标头、格式参数或 URI 扩展来呈现不同的响应。

您的代码希望:

def able_Webservice = {
   ableService.populateAbleBean(ableBean);
   ableService.settingWhereClause(ableBean);
   ableService.getDBData(ableBean);
   def data = ableService.webservice_Data(ableBean);
   withFormat {
      xml { render data as XML }
      json { render data as JSON }
   }
}

这使用内置的内容协商

于 2014-12-24T14:15:04.950 回答
0

您可以使用控制器的响应方法以最适合请求的格式呈现数据。如果 HTML 响应被选为最合适的,它将呈现由/views/controllerName/actionName约定确定的模板。

def able_Webservice = {

    ableService.populateAbleBean(ableBean);
    ableService.settingWhereClause(ableBean);
    ableService.getDBData(ableBean);
    def data = ableService.webservice_Data(ableBean);
    respond data
}   
于 2014-12-24T14:39:46.910 回答