Erstellen des EMS Pets-Clients
Nach oben zu Tutorial: Verwenden eines EMS-Clients für den Zugriff auf eine benutzerdefinierte EMS-Ressource
Sie können eine EMS-Client-Anwendung für die Verbindung mit einem EMS-Server über die vom EMS-Server bereitstellte REST-API erstellen.
In der EMS Pets-Client-Anwendung dieses Tutorials wird über die entwickelte benutzerdefinierte EMS Pets-Ressource auf die EMS-Serverressourcen und -informationen aus der EMS-Datenbank zugegriffen.
Für dieses Tutorial benötigen Sie in Ihrer EMS-Client-Anwendung die folgenden Komponenten:
- Mit der Komponente TEMSProvider wird die Verbindung mit dem EMS-Server eingerichtet.
- Mit der Komponente TBackendEndpoint wird auf eine bestimmte Methode des EMS-Ressourcenendpunkts aus Ihrer EMS-Client-Anwendung zugegriffen (eine der REST-API-Methoden des EMS-Servers). Eine EMS-Client-Anwendung ruft den TBackendEndpoint auf, um JSON vom EMS-Server abzurufen (GET) oder auf dem EMS-Server einzutragen (POST).
- Hinweis: Jede TBackendEndpoint-Komponente ist für den Zugriff auf einen EMS-Ressourcenendpunkt konfiguriert. Fügen Sie genauso viele TBackendEndpoint-Komponenten hinzu wie Methoden der EMS-Ressourcenendpunkte vorhanden sind, auf die zugegriffen werden soll.
Um einen EMS-Ressourcenendpunkt aufzurufen, müssen Sie in der Eigenschaft Method der TBackendEndpoint-Komponente die passende Methode auswählen.
Inhaltsverzeichnis
Erstellen einer EMS-Client-Anwendung
- Erstellen Sie eine neue geräteübergreifende Anwendung:
- Für Delphi: Datei > Neu > Geräteübergreifende Anwendung - Delphi
- Suchen Sie in der Tool-Palette die Komponente TEMSProvider, und ziehen Sie sie auf das Formular.
- Konfigurieren Sie im Objektinspektor die EMS-Serverparameter gemäß der EMS-Serverkonfiguration:
- URLHost:
localhost
- URLPort:
8080
- URLProtocol:
http
- URLHost:
- Klicken Sie auf die Schaltfläche Verbindung testen. Wenn die Verbindung erfolgreich hergestellt werden konnte, wird eine Meldung mit der aktuellen Version des EMS-Servers angezeigt.
Aufrufen einer Methode eines Ressourcenendpunkts
Sie können anhand von REST-API-Aufrufen aus Ihrer EMS-Client-Anwendung die Ressourcenendpunkte des EMS-Servers aufrufen, um Daten abzurufen oder festzulegen.
In diesem Tutorial werden benutzerdefinierte Ressourcenendpunkte verwendet, die die Funktionalität des EMS-Servers aus Erstellen der EMS Pets-Ressource erweitern. Die Methoden des EMS-Ressourcenendpunkts sind in der EMS Pets-Ressource definiert.
- Legen Sie in Ihrer EMS-Client-Anwendung eine TBackendEndpoint-Komponente auf dem Formular ab.
- Benennen Sie im Objektinspektor die Komponente TBackendEndpoint in BackendEndpointGetPets um.
- Legen Sie im Objektinspektor zur Verwendung der EMS-Serverressource die folgenden Parameter von TBackendEndpoint fest:
- Provider: Wählen Sie in der Dropdown-Liste
EMSProvider1
aus. - Resource:
Pets
. - ResourceSuffix: Belassen Sie dieses Feld für das Tutorial leer.
- Method:
rmGET
.
- Provider: Wählen Sie in der Dropdown-Liste
- Wenn die Parameter ordnungsgemäß festgelegt sind, erhalten Sie beim Testen der Konfiguration der TBackendEndpoint-Komponente vom EMS-Server eine Erfolgsmeldung. Führen Sie eine der folgenden Aktionen aus:
- Klicken Sie im Objektinspektor auf Ausführen.
- Klicken Sie mit der rechten Maustaste auf die TBackendEndpoint-Komponente, und wählen Sie Ausführen. Wenn die Antwort vom Endpunkt erfolgreich ist, wird die folgende Meldung angezeigt:
Antwort: 200 - OK
- Im Protokollbereich im Fenster des EMS-Servers wird die Versionsanforderung angezeigt.
- Hinweis: Sie müssen genauso viele TBackendEndpoint-Komponenten hinzufügen wie EMS-Ressourcenendpunktmethoden in der EMS Pets-Ressource definiert sind.
Name Provider Resource ResourceSuffix Method BackendEndpointGetPet
EMSProvider1
Pets
{Element}
rmGET
BackendEndpointPostPets
EMSProvider1
Pets
(leer lassen)
rmPOST
BackendEndpointPutPet
EMSProvider1
Pets
{Element}
rmPUT
BackendEndpointDeletePet
EMSProvider1
Pets
{Element}
rmDELETE
- Ziehen Sie eine TMemo-Komponente auf das Formular.
- Benennen Sie TMemo in ServerResponse um.
- Setzen Sie im Objektinspektor die Eigenschaft ReadOnly der TMemo-Komponente auf
True
. - Legen Sie für dieses Tutorial 5 TButton-Komponenten auf TForm ab.
- Legen Sie im Objektinspektor die Eigenschaften Name und Text jeder Schaltfläche wie folgt fest:
Schaltfläche 1 Schaltfläche 2 Schaltfläche 3 Schaltfläche 4 Schaltfläche 5 Name
ButtonAddPet
ButtonDelete
ButtonGetPet
ButtonGetPets
ButtonUpdate
Text
Add Pet
Delete Pet
Get Pet
Get Pets
Update Pet
- Ziehen Sie vier TEdit-Komponenten auf das Formular. Benennen Sie sie in
EId
,EName
,EKind
undEPetId
um. - Ziehen Sie vier TLabel-Komponenten auf das Formular. Setzen Sie im Objektinspektor die Eigenschaft Text der Komponenten auf
Id
,Name
,Kind
bzw.Pet Id
.
Hinzufügen der Pet-Klasse zu dem EMS-Client
Der EMS-Client verwendet dasselbe benutzerdefinierte Objekt, das für die EMS Pet-Ressource erstellt wurde.
Fügen Sie die Unit Pet type Ihrer EMS-Client-Anwendung hinzu:
- Klicken Sie in der Projektverwaltung mit der rechten Maustaste auf das Projekt, und wählen Sie Neue hinzufügen > Unit.
- Benennen Sie die Unit in PetType um.
- Fügen Sie Ihrer Unit den Code der Unit PetType aus Erstellen des Pet-Typs hinzu.
Erstellen der Methoden der EMS Pet-Ressourcenendpunkte
Sie müssen für jede Schaltfläche Ihrer Anwendung die Anforderung der Methoden der EMS Pet-Ressourcenendpunkte erstellen. Sie können die Antwortdaten (vom EMS-Server) auch visuell an eine Komponente in Ihrer EMS Pets-Client-Anwendung binden.
- Erstellen Sie in Ihrer Klasse eine private-Funktion, um die Daten vom EMS-Server abzurufen.
- Für Delphi:
// To Get all pets procedure TForm1.GetAllPets; begin BackendEndpointGetPets.Execute; ServerResponse.Text := BackendEndpointGetPets.Response.JSONText; end;
- Erstellen Sie das onClick-Ereignis für jede im Formular enthaltene TButton-Komponente (doppelklicken Sie darauf).
- Fügen Sie den Ereignissen den folgenden Code für die Implementierung der Ereignisbehandlungsroutinen hinzu:
- Für Delphi:
// To Add a Pet procedure TForm1.ButtonAddPetClick(Sender: TObject); var LJSONObject: TJSONObject; LPet: TPet; begin LJSONObject := TJSONObject.Create; LPet.Create(EId.Text.ToInteger, EName.Text, EKind.Text); try TPetJSON.PetToJSON(LPet, LJSONObject); BackendEndpointPostPets.ClearBody; BackendEndpointPostPets.AddBody(LJSONObject); BackendEndpointPostPets.Execute; GetAllPets; finally LJSONObject.Free; end; end; // To Get all pets procedure TForm1.ButtonGetPetsClick(Sender: TObject); begin GetAllPets end; // To Get a Pet procedure TForm1.ButtonGetPetClick(Sender: TObject); var LJSON: TJSONValue; APet: TPet; begin BackendEndpointGetPet.Params.Items[0].Value := EPetId.Text; BackendEndpointGetPet.Execute; LJSON := BackendEndpointGetPet.Response.JSONValue; if LJSON <> nil then begin APet := TPetJSON.JSONToPet(LJSON); ServerResponse.Text := BackendEndpointGetPet.Response.JSONText; EName.Text := APet.Name; EKind.Text := APet.Kind; EId.Text := APet.Id.ToString; end; end; procedure TForm1.ButtonDeleteClick(Sender: TObject); begin BackendEndpointDeletePet.Params.Items[0].Value := EPetId.Text; BackendEndpointDeletePet.Execute; GetAllPets; end; // To update a pet procedure TForm1.ButtonUpdateClick(Sender: TObject); var LJSONObject: TJSONObject; LPet: TPet; begin LJSONObject := TJSONObject.Create; LPet.Create(0, EName.Text, EKind.Text); try BackendEndpointPutPet.Params.Items[0].Value := EId.Text; TPetJSON.PetToJSON(LPet, LJSONObject); BackendEndpointPutPet.ClearBody; BackendEndpointPutPet.AddBody(LJSONObject); BackendEndpointPutPet.Execute; GetAllPets; finally LJSONObject.Free; end; end;
- Die Deklaration der EMS Pets-Client-Klasse:
- Für Delphi:
TForm1 = class(TForm) EMSProvider1: TEMSProvider; BackendEndpointGetPets: TBackendEndpoint; BackendEndpointGetPet: TBackendEndpoint; BackendEndpointPostPets: TBackendEndpoint; BackendEndpointPutPet: TBackendEndpoint; BackendEndpointDeletePet: TBackendEndpoint; ButtonAddPet: TButton; ButtonGetPets: TButton; ButtonUpdate: TButton; ButtonGetPet: TButton; ButtonDelete: TButton; EId: TEdit; EName: TEdit; EKind: TEdit; LId: TLabel; LName: TLabel; LKind: TLabel; ServerResponse: TMemo; EPetId: TEdit; LPetId: TLabel; procedure ButtonAddPetClick(Sender: TObject); procedure ButtonGetPetsClick(Sender: TObject); procedure ButtonUpdateClick(Sender: TObject); procedure ButtonGetPetClick(Sender: TObject); procedure ButtonDeleteClick(Sender: TObject); private procedure GetAllPets; public { Public declarations } end;
- Erzeugen Sie Ihre Anwendung, und führen Sie sie aus. Drücken Sie F9, oder wählen Sie Start > Start.
- Hinweis: Der EMS-Server muss ausgeführt werden, und die EMS Pets-Ressource muss zuvor auf den Server geladen worden sein.