Tutorial: Verwenden der REST-Clientbibliothek zum Zugreifen auf REST-basierte Webdienste

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Tutorials zu Datenbanken und LiveBindings

In diesem Tutorial zum Client "REST BaaS" (Backend as a Service) wird gezeigt, wie mit der REST-Clientbibliothek auf REST-basierte Webdienste zugegriffen wird (REST ist die Abkürzung für "Representational State Transfer"). Die REST-Bibliothek ist für alle von Object Pascal unterstützten Plattformen verfügbar. Im REST-Bibliotheks-Framework wird JSON als Darstellungsformat verwendet. XML wird nicht explizit unterstützt.

Erstellen des Projekts

Erstellen Sie ein neues Projekt.

  • Für Object Pascal wählen Sie Datei > Neu > Geräteübergreifende Anwendung - Object Pascal > Leere Anwendung.
  • Für C++ wählen Sie Datei > Neu > Geräteübergreifende Anwendung - C++ > Leere Anwendung.

Hinzufügen der REST-Komponenten

  1. Ziehen Sie die Komponenten TRESTClient, TRESTRequest und TRESTResponse auf das Formular.
    Tipp: Alternativ können Sie alle drei Komponenten mit der Schaltfläche Komponenten kopieren des REST-Debugger-Tools in die Zwischenablage kopieren und sie dann in das Formular einfügen. Dieses Vorgehen ist schneller.
  2. Setzen Sie im Objektinspektor die Eigenschaft BaseURL von TRESTClient auf http://www.songsterr.com/a/ra/.
  3. Wählen Sie im Formular die Komponente TRESTRequest aus, und legen Sie die folgenden Eigenschaften fest:
    • Setzen Sie im Objektinspektor die Eigenschaft Resource auf songs.json.
    • Erweitern Sie in der Strukturansicht den Knoten Params.
    • Klicken Sie mit der rechten Maustaste auf den Knoten Params, und wählen Sie im Kontextmenü Eintrag hinzufügen aus.
    • Klicken Sie unter Params auf den neu hinzugefügten Parameter 0-.
    • Setzen Sie im Objektinspektor den Parameternamen auf pattern und den Parameterwert auf Madonna.
      RESTTutorialStructureViewModified.png
  4. Klicken Sie mit der rechten Maustaste auf die Komponente TRESTRequest, und wählen Sie Ausführen.
    RESTTutorialResponseOK.png
  5. Klicken Sie auf die Schaltfläche OK.
Hinweis: Mit diesem Szenario wird gezeigt, wie Sie eine Antwort im JSON-Format vom Webdienst "Songsterr" erhalten. Der Webdienst "Songsterr" unterstützt auch die Formate XML und PLIST. Weitere Informationen finden Sie unter http://www.songsterr.com/a/wa/api.

Verwenden des LiveBindings-Designers

Öffnen Sie den LiveBindings-Designer. Das Diagramm ohne Verbindungen sollte wie in der folgenden Abbildung dargestellt aussehen:

RESTTutorialLiveBindingsDesigner.png

  1. Klicken Sie mit der rechten Maustaste auf die Eigenschaft RESTResponse1.Content.
  2. Wählen Sie die Option Mit neuem Steuerelement verknüpfen aus.
  3. Wählen Sie aus der angezeigten Liste das Steuerelement TMemo aus.
    RESTTutorialBindNewControlTMemo.png
  4. Klicken Sie auf die Schaltfläche OK.
  5. Legen Sie im Objektinspektor die folgenden Eigenschaften für die TMemo-Komponente fest:
    • Setzen Sie die Eigenschaft Align auf Client.
    • Setzen Sie die Eigenschaft TextSettings/WordWrap auf True.
      Wenn Sie die Methode Execute der TRESTRequest-Komponente aufgerufen haben, werden in dem TMemo bereits die RAW-JSON-Ergebnisse angezeigt.
  6. Ziehen Sie eine TPanel-Komponente auf das Formular.
  7. Setzen Sie die Eigenschaft Align von TPanel auf Top.
  8. Klicken Sie im LiveBindings-Designer mit der rechten Maustaste auf die Eigenschaft Params.pattern von RESTClient1.
  9. Wählen Sie die Option Mit neuem Steuerelement verknüpfen aus.
  10. Wählen Sie aus der angezeigten Liste das Steuerelement TEdit aus, und klicken Sie auf OK.
    Hinweis: Das Kontrollkästchen Steuerelementbeschriftung hinzufügen ist standardmäßig aktiviert, daher wird eine Beschriftung (TLabel) für das TEdit-Steuerelement erstellt.
  11. Verschieben Sie das Steuerelement Params.pattern an den oberen Rand des Formulars.
  12. Fügen Sie dem Formular eine TButton-Komponente hinzu, und setzen Sie die Eigenschaft Text der Schaltfläche auf Execute.

Vorbereiten der Anwendung für die Ausführung

Erstellen einer Ereignisbehandlungsroutine für die Execute-Schaltfläche

  1. Wählen Sie im Formular-Designer die Komponente Button1 aus.
  2. Doppelklicken Sie im Objektinspektor auf das Ereignis OnClick.
  3. Fügen Sie den folgenden Code für diese Ereignisbehandlungsroutine hinzu:
Object Pascal:
procedure TForm1.Button1Click(Sender: TObject);
var
  jValue:TJSONValue;
begin
  RESTRequest1.Execute;
  jValue:=RESTResponse1.JSONValue;
  MemoContent.Text:= jValue.ToString;
end;

Wichtig: Die Klasse TJSONValue ist in der Unit System.JSON deklariert. Fügen Sie vor dem Compilieren des Projekts System.JSON der uses-Klausel Ihrer Unit hinzu.

C++:
void __fastcall TForm1::Button1Click(TObject *Sender) {
    TJSONValue *jValue;
    RESTRequest1->Execute();
    jValue = RESTResponse1->JSONValue;
    MemoContent->Text = jValue->ToString();
}

Wichtig: Die Klasse TJSONValue ist in der System.JSON-Bibliothek deklariert. Fügen Sie vor dem Compilieren des Projekts #include <System.JSON.hpp> der Projekt-Header-Datei hinzu.

Ausführen von Anwendungen

So führen Sie die Anwendung aus:

  1. Drücken Sie F9, oder wählen Sie Start > Start.
  2. Geben Sie in das Textfeld Param.pattern ein Muster (wie z. B. Madonna) ein.
  3. Klicken Sie auf Execute, um Ihre Anfrage an den Songsterr-Dienst zu senden.


RESTTutorialRunTime2.png

Siehe auch