Tutorial: Verwenden der REST-Clientbibliothek zum Zugreifen auf REST-basierte Webdienste
Nach oben zu Tutorials zu Datenbanken und LiveBindings
Inhaltsverzeichnis
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 Delphi 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 Delphi wählen Sie Datei > Neu > Geräteübergreifende Anwendung - Delphi > Leere Anwendung.
- Für C++Builder wählen Sie Datei > Neu > Geräteübergreifende Anwendung - C++Builder > Leere Anwendung.
Hinzufügen der REST-Komponenten
- 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.
- Setzen Sie im Objektinspektor die Eigenschaft BaseURL von TRESTClient auf http://www.songsterr.com/a/ra/.
- 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.
- Klicken Sie mit der rechten Maustaste auf die Komponente TRESTRequest, und wählen Sie Ausführen.
- 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:
- Klicken Sie mit der rechten Maustaste auf die Eigenschaft RESTResponse1.Content.
- Wählen Sie die Option Mit neuem Steuerelement verknüpfen aus.
- Wählen Sie aus der angezeigten Liste das Steuerelement TMemo aus.
- Klicken Sie auf die Schaltfläche OK.
- 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.
- Ziehen Sie eine TPanel-Komponente auf das Formular.
- Setzen Sie die Eigenschaft Align von TPanel auf Top.
- Klicken Sie im LiveBindings-Designer mit der rechten Maustaste auf die Eigenschaft Params.pattern von RESTClient1.
- Wählen Sie die Option Mit neuem Steuerelement verknüpfen aus.
- 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.
- Verschieben Sie das Steuerelement Params.pattern an den oberen Rand des Formulars.
- 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
- Wählen Sie im Formular-Designer die Komponente Button1 aus.
- Doppelklicken Sie im Objektinspektor auf das Ereignis OnClick.
- Fügen Sie den folgenden Code für diese Ereignisbehandlungsroutine hinzu:
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.
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:
- Drücken Sie
F9
, oder wählen Sie Start > Start. - Geben Sie in das Textfeld Param.pattern ein Muster (wie z. B. Madonna) ein.
- Klicken Sie auf Execute, um Ihre Anfrage an den Songsterr-Dienst zu senden.
Siehe auch
- REST-Clientbibliothek
- REST-Debugger
- REST.RESTDemo (Beispiel)
- An neues Steuerelement binden
- LiveBindings-Designer