Erstellen des EMS Pets-Clients

Aus RAD Studio
Wechseln zu: Navigation, Suche

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.

Erstellen einer EMS-Client-Anwendung

  1. Erstellen Sie eine neue geräteübergreifende Anwendung:
    • Für Delphi: Datei > Neu > Geräteübergreifende Anwendung - Delphi
  2. Suchen Sie in der Tool-Palette die Komponente TEMSProvider, und ziehen Sie sie auf das Formular.
  3. Konfigurieren Sie im Objektinspektor die EMS-Serverparameter gemäß der EMS-Serverkonfiguration:
    • URLHost: localhost
    • URLPort: 8080
    • URLProtocol: http
    EMSServerConnection.png
  4. 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.

  1. Legen Sie in Ihrer EMS-Client-Anwendung eine TBackendEndpoint-Komponente auf dem Formular ab.
  2. Benennen Sie im Objektinspektor die Komponente TBackendEndpoint in BackendEndpointGetPets um.
  3. 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 .
    TBackendEndpointGetPets1.png
  4. 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
  5. Im Protokollbereich im Fenster des EMS-Servers wird die Versionsanforderung angezeigt.
    UsersGetEMSServerLogGetPets.png
    Hinweis: Sie müssen genauso viele TBackendEndpoint-Komponenten hinzufügen wie EMS-Ressourcenendpunktmethoden in der EMS Pets-Ressource definiert sind.
    Wiederholen Sie die vorhergehenden Schritte (1 - 4), bis alle in der folgenden Tabelle enthaltenen TBackendEndpoint-Komponenten konfiguriert 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


    EMSClientBackendEndpoints.png
  6. Ziehen Sie eine TMemo-Komponente auf das Formular.
  7. Benennen Sie TMemo in ServerResponse um.
  8. Setzen Sie im Objektinspektor die Eigenschaft ReadOnly der TMemo-Komponente auf True.
  9. Legen Sie für dieses Tutorial 5 TButton-Komponenten auf TForm ab.
  10. 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

  11. Ziehen Sie vier TEdit-Komponenten auf das Formular. Benennen Sie sie in EId, EName, EKind und EPetId um.
  12. Ziehen Sie vier TLabel-Komponenten auf das Formular. Setzen Sie im Objektinspektor die Eigenschaft Text der Komponenten auf Id, Name, Kind bzw. Pet Id.
EMSPetsClientDesignTab.png

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:

  1. Klicken Sie in der Projektverwaltung mit der rechten Maustaste auf das Projekt, und wählen Sie Neue hinzufügen > Unit.
  2. Benennen Sie die Unit in PetType um.
  3. 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.

  1. 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;
    
  2. Erstellen Sie das onClick-Ereignis für jede im Formular enthaltene TButton-Komponente (doppelklicken Sie darauf).
  3. 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;
    
  4. 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;
    
  5. Erzeugen Sie Ihre Anwendung, und führen Sie sie aus. Drücken Sie F9, oder wählen Sie Start > Start.
    EMSPetsClientRunning.png
Hinweis: Der EMS-Server muss ausgeführt werden, und die EMS Pets-Ressource muss zuvor auf den Server geladen worden sein.

Siehe auch