Web services Grails:不同格式的restfulweb服务数据处理

Web services Grails:不同格式的restfulweb服务数据处理,web-services,rest,grails,exchangewebservices,groovyws,Web Services,Rest,Grails,Exchangewebservices,Groovyws,目前我正在使用GGTS3.6.0开发Grails2.4.3 需求-grails web服务如何工作 现有的-目前我的闭包作为一个web服务为我工作,但输出是特定于格式的(一次是JSON或XML) 问题-在闭包(web服务)中,我将如何返回JSON/XML和其他格式 关闭代码- def able_Webservice = { ableService.populateAbleBean(ableBean); ableService.settingWhereClause(ableBean)

目前我正在使用GGTS3.6.0开发Grails2.4.3

需求-grails web服务如何工作

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

问题-在闭包(web服务)中,我将如何返回JSON/XML和其他格式

关闭代码-

def able_Webservice = {

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

}   
Grails有一个特性。您可以根据传入的请求接受标头、格式参数或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 }
   }
}

这使用内置的。

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

def able_Webservice = {

    ableService.populateAbleBean(ableBean);
    ableService.settingWhereClause(ableBean);
    ableService.getDBData(ableBean);
    def data = ableService.webservice_Data(ableBean);
    respond data
}   

你试过闭包吗?我如何使用withFormat?你能提供一个简单的例子吗。如何调用以及如何将URL处理为闭包?请参阅下面的答案。