IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Robusta Web Library : Simplifiez REST et Ajax


précédentsommairesuivant

VII. Les Clients HTTP

Robusta définit une interface RestClient avec des fonctionnalités simplifiées, mais suffisantes et bien organisées pour une architecture REST. Comme les implémentations SunRestClient et ApacheRestClient sont des wrappers pour les HttpClient Sun et Apache, il est possible d'accéder également à l'ensemble de leurs fonctionnalités.

Notons que la version 1.0 de Robusta implémentera un GwtRestClient avec une interface similaire, mais asynchrone.

VII-A. L'interface RestClient

 
Sélectionnez
//Utiliser une fois suffit
public void setApplicationUri(String uri); //ApplicationUri est également défini par le constructeur
public void setAuthorizationValue(String authorizationValue);
public void setContentType(String contentType);

//Optionnel
public void setPostBodyToNextRequest(String postBody, boolean contentTypeIsXml);

//Pour chaque requête
public String executeGETmethod(String relativeFileWithNoParam, CoupleList<String, Object> parameters) throws HttpException, RestException;
public String executePOSTmethod(String relativeFileWithNoParam, CoupleList<String, Object> parameters) throws HttpException, RestException;
public String executePUTmethod(String relativeFileWithNoParam, CoupleList<String, Object> parameters) throws HttpException, RestException;
public String executeDELETEmethod(String relativeFileWithNoParam, CoupleList<String, Object> parameters) throws HttpException, RestException;

public int getLastStatusCode() ;

VII-B. Implémentation Apache ou Sun ?

Le client d'Apache est présumé plus stable et plus efficace que la version Sun. Cependant le HttpClient d'Apache nécessite l'installation dans le ClassPath des trois bibliothèques d'Apache. Apache est proscrit pour les applets. D'une part le temps de chargement est assez long, mais surtout les bibliothèques annexes tentent un chargement sur le disque local, ce qui est interdit.

Par souci de simplicité, il me semble donc préférable de se tourner vers le SunRestClient qui est immédiatement utilisable.

VII-C. Exemples

Voici un accès GET exécuté par le SunRestClient, utilisant deux paramètres de requête :

 
Sélectionnez
RestClientSun client = new RestClientSun("http://www.mi5.co.uk/);
String result = client.executeGETmethod("/people", CoupleList.builder("firstname", "James","city","London") );
//result contient la réponse

Voici un exemple avec la méthode POST.

 
Sélectionnez
String xml = "<root><user>Shark</user><ennemy>true</ennemy></root>";
RestClientSun client = new RestClientSun("http://www.mi5.co.uk/);
client.setPostBodyToNextRequest(xml, true);
String result = client.executePOSTmethod("/people", null );

précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Nicolas Zozol. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.