Tutoriel : Utilisation de la bibliothèque client REST pour accéder aux services Web basés sur REST

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Tutoriels

Le tutoriel du client REST BaaS (Backend as a Service) explique comment utiliser la bibliothèque Embarcadero REST pour accéder aux services Web basés sur REST (REST est l'acronyme de Representational State Transfer). Cette bibliothèque est disponible pour toutes les plates-formes supportées par Object Pascal. Le framework de la bibliothèque REST est principalement basé sur le format de représentation JSON. Le format XML n'est pas explicitement supporté.

Remarque : Cet exemple requiert une connexion cryptée SSL. Vous pouvez installer la bibliothèque SSL et copier les fichiers libeay32.dll et ssleay32.dll dans votre chemin système.

Création du projet

Créez un nouveau projet.

Ajout de composants REST

  1. Déposez les composants TRESTClient, TRESTRequest et TRESTResponse sur la fiche.
    Remarque : Les composants REST sont automatiquement connectés ensemble. Sinon, vous devez définir les propriétés Client et Response du composant TRESTRequest sur RESTClient1 et RESTResponse1, respectivement.
  2. Dans l'inspecteur d’objets, définissez la propriété BaseURL de TRESTClient sur http://api.discogs.com/.
  3. Sélectionnez le composant TRESTRequest sur la fiche et définissez les propriétés suivantes :
    • Dans l'inspecteur d’objets, définissez la propriété Resource sur artist/{NAME}.
    • Dans la vue Structure, développez le noeud Params.
      RESTTutorialStructureViewModified.png
    • Sélectionnez le paramètre NAME.
    • Définissez la valeur du paramètre sur Michael Jackson.
      Remarque : L'URI de ressource (artist/{NAME}) comporte un paramètre interne, placé entre accolades. Cette valeur de paramètre interne ajoute un paramètre de segment URL au composant TRESTRequest.
  4. Cliquez avec le bouton droit sur le composant TRESTRequest et sélectionnez Execute.
    RESTTutorialResponseOK.png
  5. Cliquez sur le bouton OK.

Utilisation du Concepteur LiveBindings

Ouvrez le Concepteur LiveBindings. Le diagramme sans connexion est similaire à l'image suivante :

RESTTutorialLiveBindingsDesigner.png

  1. Cliquez avec le bouton droit sur la propriété RESTResponse1.Content.
  2. Sélectionnez l'option Lier à un nouveau contrôle.
  3. Dans la liste qui apparaît, sélectionnez le contrôle TMemo.
    RESTTutorialBindNewControlTMemo.png
  4. Cliquez sur le bouton OK.
  5. Dans l'inspecteur d’objets, définissez les propriétés suivantes du composant TMemo :
    • Définissez la propriété Align sur Client.
    • Définissez la propriété WordWrap sur True.
      Si vous avez appelé la méthode Execute du composant TRESTRequest, le TMemo devrait déjà afficher les résultats JSON bruts.
  6. Ajoutez un composant TPanel sur la fiche.
  7. Définissez la propriété Align du composant TPanel sur Top.
  8. Dans le Concepteur LiveBindings, cliquez avec le bouton droit sur la propriété Params.NAME de RESTRequest1.
  9. Sélectionnez l'option Lier à un nouveau contrôle.
  10. Dans la liste qui apparaît, sélectionnez le contrôle TEdit.
    Remarque : La case à cocher Ajouter un libellé de contrôle est activée par défaut, de sorte qu'un TLabel est créé pour le contrôle TEdit.
  11. Déplacez le contrôle EditParamsNAME vers le haut de la fiche.
  12. Ajoutez un composant TButton sur la fiche.
  13. Définissez la propriété Text du bouton sur Execute.

Préparation de votre application pour l'exécution

Ajout d'un code pour afficher un sous-ensemble de réponse JSON

  1. Ajoutez un composant TComboBox sur le panneau et définissez les propriétés suivantes :
    • Dans l'inspecteur d'objets, ouvrez l'éditeur de liste de chaînes pour la propriété Items.
    • Ajoutez les éléments Content et JSONValue à la liste.
      RESTTutorialStringListEditor.png
    • Cliquez sur le bouton OK pour fermer l'éditeur.
    • Dans l'inspecteur d’objets, définissez la propriété ItemIndex sur 0.
  2. Dans le Concepteur de fiches, sélectionnez le composant Button1.
  3. Dans l'inspecteur d’objets, double-cliquez sur l'événement OnClick.
  4. Ajoutez le code suivant à ce gestionnaire d'événement :
 procedure TForm10.Button1Click(Sender: TObject);
 var
   jValue:TJSONValue;
 begin
   RESTRequest1.Execute;
   jValue:=RESTResponse1.JSONValue;
   if (ComboBox1.ItemIndex = 1) and (jValue is TJSONObject) then
     MemoContent.Text:= jValue.ToString
   else
     MemoContent.Text:= RESTResponse1.Content;
 end;

Les classes TJSONValue et TJSONObject sont déclarées dans l'unité Data.DBXJSON, de sorte que vous devez ajouter Data.DBXJSON dans la clause uses de votre unité.

Exécution de votre application

Pour exécuter l'application, appuyez sur F9 ou choisissez Exécuter > Exécuter. Vous pouvez choisir Content ou JSONValue dans le contrôle de zone de liste déroulante, changer la valeur de TRESTRequestParameter, puis cliquer sur le bouton Execute.<br\><br\> RESTTutorialRunTime2.png

Voir aussi