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▲
//Utiliser une fois suffit
public void setApplicationUri(String uri); //ApplicationUri est également définit 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 librairies d'Apache. Apache est proscrit pour les applets. D'une part le temps de chargement est assez long, mais surtout les librairies annexes tentent un chargement sur le disque local, ce qui est interdit.
Par soucis 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 executé par le SunRestClient, utilisant deux paramètres de requête :
RestClientSun client = new RestClientSun("http://www.mi5.co.uk/);
String result = client.executeGETmethod("/people", CoupleList.builder("firstname", "James","city","London") );
//result contient la réponseVoici un exemple avec la méthode POST.
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 );

