Pages enfant
  • 3.12.3 Accéder au service REST exposé

Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=100663584) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 6) afficher la version suivante »

Introduction

Deux solutions sont présentés ici :

  • Un accès en JQuery. Dans ce cas c'est du code javaScript sur le navigateur de l'utilisateur qui fait la requête REST.
  • Dans ce cas c'est le code Java sur le serveur qui fait la requête REST.
    • Un accès avec RestTemplate.
    • Un accès avec le client Jersey

Dans les exemples ci-dessous on utilise le flux produit par l'URL en /users qui renvoie une liste de User

Accès JQuery

<div id="users" />
<script>
 //<![CDATA[
  (function($) {
   $(document).ready(function() {
    $.getJSON("#{welcomeController.restURL}", function(data) {
     var html = "<ul>";
     $.each(data, function(i, item) {
      html += "<li>" + item.displayName + "</li>";
     });
     html += "</ul>";
     $(html).appendTo("#users");
    });
   });
  })(jQuery);
 //]]>
</script>

On positionne une balise <div id="users" /> qui sera destinataire des résultats.

La fonction JQuery getJSON() appel l'URL REST (dont la valeur nous est ici donnée par le contrôleur JSF). Lors de l'itération sur la liste on construit une liste html. Cette liste est ensuite insérer dans la balise <div> cible : $(html).appendTo("#users")

Accès RestTemplate

Dans la vue (JSF ici) on utilise un composant de type liste (au sens html du terme) qui fait appel au contrôleur pour obtenir une liste d'objets (au sens java du terme) :

<h:form>
 <p:dataList var="user" value="#{welcomeController.restUsers}">
  #{user.displayName}"
 </p:dataList>
</h:form>

Voyons le code Java du contrôleur :

public List<User> getRestUsers() {
 RestTemplate template = new RestTemplate();
 List<User> ret = template.getForObject(getRestURL(), List.class);
 return ret;
}

Ce cas est très simple. Pour avoir plus d'information sur l'utilisation de RestTemplate Cf. La documentation Spring sur RestTemplate

Accès Jersey Client

 

  • Aucune étiquette