2012-11-07 82 views
2

我目前正在开发一个web应用程序,它应该对现有的web服务api执行平稳的服务调用。Grails RESTful Web服务api

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

任何帮助我如何开始工作? 我想我需要使用httpbuilder作为我的基础url,然后是/ api名称。但是,如果它在工作,我如何在Grails上进行测试?

当我在浏览器上粘贴基础URL时,它确实会返回一些xml信息,所以我需要的是在grails上执行此操作。而不是将其粘贴在浏览器上,当我粘贴URL通过浏览器

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

XML响应所以我需要能够得到通过我的web应用程序此响应(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

此XML看起来更像是SOAP。 – 2012-11-07 08:59:05

回答

0

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

0

要到resfull服务看看Groovy的HttpBuidler通话 - http://groovy.codehaus.org/HTTP+Builder

+0

谢谢,我发现这是有帮助的,但你介意解释吗?因为我不知道如何改变它到我的需要。尤其是我认为是关键的uri.query部分? – user1790785

+0

您需要哪些帮助? uri.query定义了将被传递的查询参数。例如,在上面的示例中,您将获得请求:/ajax/services/search/web?v=1.0&q="Calvin和Hobbes“url编码当然。这将是发送到端点的请求。 response.success块定义了成功时发生的情况(来自端点的200个范围响应),response.failure定义了服务器响应失败时应该采取的措施。 – imrank1