Grails RESTFUL Web服务api

时间:2012-11-07 08:53:38

标签: web-services api rest grails

我目前正在开发一个网络应用程序,它应该对现有的Web服务api进行休息服务调用。

我所拥有的是基本网址和API名称。

有关如何开始工作的任何帮助? 我想我需要使用httpbuilder作为我的基本网址,然后是/ api名称。但是如果它的工作原理我如何在grails上测试呢?

当我将基本网址粘贴到浏览器上时,它确实会返回一些xml信息,所以我需要的是在grails上执行此操作。

通过浏览器粘贴网址时的XML响应

<ns1:createNewUserResponse>
<userId>21</userId>
</ns1:createNewUserResponse>

所以我需要能够通过我的网络应用程序(grails)获得此响应,而不是将其粘贴到浏览器上。

编辑* 这是我发现有用的一个很好的例子

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.0-RC2' )
import groovyx.net.http.*
import static groovyx.net.http.ContentType.*
import static groovyx.net.http.Method.*

def http = new HTTPBuilder( 'http://ajax.googleapis.com' )

// perform a GET request, expecting JSON response data
http.request( GET, JSON ) {
  uri.path = '/ajax/services/search/web'
  uri.query = [ v:'1.0', q: 'Calvin and Hobbes' ]

  headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.0.4'

  // response handler for a success response code:
  response.success = { resp, json ->
    println resp.statusLine

    // parse the JSON response object:
    json.responseData.results.each {
      println "  ${it.titleNoFormatting} : ${it.visibleUrl}"
    }
  }

  // handler for any failure status code:
  response.failure = { resp ->
    println "Unexpected error: ${resp.statusLine.statusCode} : ${resp.statusLine.reasonPhrase}"
  }
}

但我不理解查询部分,如何根据需要改变它? 我拥有的URL包含用户名和密码的凭据,响应应该返回一个securityToken,我需要从结果中获取它。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

您可以从groovy-wslite开始,它提供SOAP和REST Web服务客户端。

答案 1 :(得分:0)

要调用一个宁静的服务,请查看Groovy HttpBuilder - {{3p>