2012-11-07 86 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