2012-11-07 6 views
2

Je suis actuellement en train de développer une application web qui devrait faire des appels de service reposant à l'API du service web existant.Grails Service Web RESTFUL api

Ce que j'ai est l'URL de base et les noms d'API.

Une aide sur comment commencer à travailler dessus? Je suppose que j'ai besoin d'utiliser httpbuilder pour l'url de base que j'ai, suivi par le nom/api. Mais comment puis-je le tester sur les grails si son fonctionnement? Lorsque je colle l'URL de base sur le navigateur, il renvoie des informations XML, donc ce dont j'ai besoin est de le faire sur Grails à la place.

réponse XML quand je coller l'URL via un navigateur

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

donc je dois être en mesure d'obtenir cette réponse dans ma web-app (Grails) au lieu de le coller sur le navigateur.

EDIT * c'est un bon exemple, je trouve utile

@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}" 
    } 
} 

mais je ne comprends pas la partie de la requête et comment puis-je modifier à mon besoin? l'URL que j'ai contient les informations d'identification du nom d'utilisateur et mot de passe, la réponse doit renvoyer un securityToken dont j'ai besoin pour le sortir des résultats. Toute aide serait grandement appréciée!

+2

Ce fichier XML ressemble plus SOAP. –

Répondre

0

Vous pouvez commencer par groovy-wslite, il fournit à la fois des clients de service Web SOAP et REST.

0

Pour appeler à un look service resfull au Groovy HttpBuidler - http://groovy.codehaus.org/HTTP+Builder

+0

Merci d'avoir trouvé cela utile, mais cela vous dérange-t-il d'expliquer? parce que je n'ai aucune idée de comment l'adapter à mon besoin. surtout la partie uri.query qui je pense est la clé? – user1790785

+0

Pour quelle partie avez-vous besoin d'aide? l'uri.query définit les paramètres de requête qui seront passés. Par exemple dans l'exemple ci-dessus vous auriez la demande: /ajax/services/search/web?v=1.0&q="Calvin et Hobbes "url encodé bien sûr. Ce serait la demande envoyée à l'extrémité. Le bloc response.success définit ce qui se passe en cas de succès (réponse de la plage 200 à partir du noeud final) et response.failure définit ce qu'il faut faire lorsque le serveur répond en cas de défaillance. – imrank1