API-Endpunkt für eine Applikation erstellen
Ausgangssituation
Sie setzen die Applikation "Aufgabenplanung" ein, um Ihre Projekte zu steuern.
Die Applikation "Aufgabenplanung" ist eine der zahlreichen in Intrexx kostenfrei zur Verfügung stehenden Applikationsvorlagen. Nähere Informationen hierzu finden Sie in folgenden Abschnitten:
In Ihrer Firma gibt es die drei Teams Finance, Marketing und Sales.
Sie selbst (David Winter) gehören zum Team Sales.
Aktuell arbeitet Ihr Team an dem Projekt "Neues ERP". Für Ihr Team wurden drei Aufgaben angelegt. Jeweils eine Aufgabe befindet sich im Status "Todo", "In Bearbeitung" und "Erledigt".
Ziel
Als Mitglied im Team Sales sind Sie viel auf Reisen. Sie möchten sich auch von unterwegs über eine mobile App oder eine andere "externe Software" schnell einen Überblick über die Teams verschaffen. Die Lösung hierfür wird im diesem Tutorial beschrieben.
Sie erstellen mit der Intrexx Application API eine REST-Schnittstelle für die Aufgabenplanung. Diese stellt alle von Ihnen gewünschten Daten zur Verfügung. Diese können anschließend von einer APP oder einem Cloud-Produkt konsumiert werden.
Die Intrexx Application API gibt Ihnen die Möglichkeit, eine OpenAPI kompatible Dokumentation (Swagger Dokumentation) zu erzeugen. Diese können Sie selbst für das Erstellen einer APP nutzen oder an einen Drittanbieter weitergeben.
Inhalt dieses Tutorials
Dieses Tutorial beschreibt detailliert, wie Sie eine REST-Schnittstelle für die Applikation "Aufgabenplanung" in Intrexx erstellen können. Dabei werden die erforderlichen Datengruppen-Endpunkte erstellt, die entsprechenden Rechte vergeben und - für die Authentifizierung - ein API-Key erzeugt.
Anschließend wird beschrieben, wie Sie die Swagger-Dokumentation generieren.
Als API-Konsument wird in diesem Tutorial "Postman" stellvertretend für eine APP oder ein Cloud-Produkt verwendet.
Vorbereitende Tätigkeiten
-
Demoportal anlegen oder Applikation "Aufgabenplanung" in bestehendes Portal importieren
Das vorliegende Tutorial beschreibt das Erstellen der REST-API-Schnittstelle auf der Basis des Intrexx Demoportals. Wie Sie ein neues Portal anlegen und dabei das Intrexx Demoportal als Vorlage verwenden können, können Sie in folgendem Abschnitt nachlesen: Intrexx Demoportal als Portalvorlage verwenden
Alternativ können Sie auch die Applikationsvorlage "Aufgabenplanung in ein bestehendes Portal importieren. Die entsprechende Vorgehensweise wird in folgendem Abschnitt beschrieben: Online-Applikationsvorlagen importieren.
-
Benutzer "David Winter" anlegen.
Im Tutorial heißt der Benutzer, der die REST-API-Schnittstelle verwenden soll David Winter. Er hat die Rolle "Benutzer".
Im Intrexx Demoportal ist dieser Benutzer standardmäßig angelegt.
-
Postman herunterladen oder online nutzen
Installieren Sie den Postman Client oder nutzen Sie "Postman for the Web".
Datengruppen-Endpunkt erstellen - Mehrere Datensätze lesen
Schritt-für-Schritt
-
Öffnen Sie die Applikation "Aufgabenverwaltung".
Klicken Sie auf (Neuen Endpunkt erstellen).
Damit der Bereich "API-Endpunkte" angezeigt wird, müssen Sie im Hauptmenü unter "Ansicht" das Kontrollkästchen "API-Endpunkte" aktivieren Ansicht "API-Endpunkte" aktivieren.
Sie gelangen auf den Dialog-Schritt "Allgemein".
-
Erfassen Sie einen Namen und eine Beschreibung für den Endpunkt.
Der Name muss eindeutig sein, mindestens aus zwei Zeichen bestehen und mit einem Buchstaben beginnen. Erlaubt sind dabei nur alphanumerische Zeichen, Bindestriche, Unterstriche und Punkte.
Die in den Dialogen erfassten Texte fließen in die Swagger-Dokumentation ein. Daher ist es für Sie und für einen potenziellen Dienstleister sehr hilfreich, wenn Sie sprechende Bezeichnungen wählen und einer Namenskonvention folgen.
-
Klicken Sie auf "Datengruppen-Endpunkt".
-
Klicken Sie auf "Weiter".
Sie gelangen auf den Dialog-Schritt "Datengruppenauswahl".
-
Wählen Sie im Auswahlfeld "Aktion" den Wert "Mehrere Datensätze lesen" aus.
-
Wählen Sie im Auswahlfeld "Datengruppe" den Wert "Team" aus.
Schritt-für-Schritt
-
Klicken Sie auf das - Icon.
Das Dialogfenster "Datenfelder hinzufügen" wird angezeigt.
-
Deaktivieren Sie das Kontrollkästchen "(PK) (S) (ID) <string>
-
Aktivieren Sie die folgenden Kontrollkästchen:
-
Beschreibung <text>
-
Titel <string>
-
Teamleitung - Voller Name <string>
-
-
Klicken Sie auf "OK".
Sie gelangen zurück auf den Dialog-Schritt "Datengruppenauswahl".
Die zuvor ausgewählten Datenfelder werden im Bereich "Rückgabewerte der Anfrage" angezeigt.
Für eine bessere Lesbarkeit der Rückgabewerte und der Swagger-Dokumentation empfiehlt es sich, die Rückgabewerte umzubenennen.
-
Markieren Sie im Bereich "Rückgabewerte der Anfrage" einen Rückgabewert.
-
Erfassen Sie im rechten Bereich einen Namen und eine Beschreibung für den Rückgabewert.
In unserem Beispiel verwenden wir die "Camel-Schreibweise". Der erste Teil des Namens gibt dabei die Applikation bzw. die Ressource an.
-
teamDescription
-
teamTitle
-
teamFullNameTeamLeader
-
-
Nehmen Sie die Umbenennungen für alle Rückgabewerte vor.
-
Klicken Sie auf "Weiter".
Sie gelangen in den Dialog "Pfad-Parameter".
Die Angabe eines Pfad-Parameters ist Pflicht. Wir verwenden einen statischen Parameter. Wir verwenden den statischen Pfadparameter zur Angabe der Ressource.
Schritt-für-Schritt
Im Dialogschritt Query-Parameter sind keine Angaben bzw. Abfragen erforderlich, da wir alle Teams ermitteln wollen.
Klicken Sie auf "Weiter".
Sie gelangen in den Dialog-Schritt "Filter und Sortierung".
Im Dialog-Schritt "Filter und Sortierung" legen wir die Sortierung der Rückgabewerte fest. Sie soll anhand des Team-Titels erfolgen.
Schritt-für-Schritt
-
Klicken Sie auf das - Icon.
-
Wählen Sie "Team > Titel <string>" aus.
Die ausgewählte Sortierung wird angezeigt.
-
Entfernen Sie - falls vorhanden - andere Sortierungen.
-
Klicken Sie auf "Fertigstellen".
Der neu angelegte Endpunkt wird im Bereich "API-Endpunkte" angezeigt.
-
Klicken Sie auf das - Icon (Applikation vollständig veröffentlichen).
In diesem Schritt erteilen wir dem Benutzer David Winter das Recht zu, den zuvor erstellten Endpunkt benutzen zu dürfen.
Im darauf folgenden Schritt weisen wir dem Benutzer David Winter den API-Key zu, so dass er dann über alle erforderlichen Rechte verfügt, um den API-Endpunkt nutzen zu können.
Schritt-für-Schritt
-
Öffnen Sie den Eigenschaften-Dialog der Applikation "Aufgabenverwaltung".
Markieren Sie hierfür die Applikation und drücken "ENTER".
Oder
Markieren Sie die Applikation und klicken Sie auf die rechte Maustaste.
Klicken Sie auf "Eigenschaften" im Kontextmenü.
Der Dialog "Eigenschaften - Applikation" wird angezeigt.
-
Wechseln Sie auf die Registerkarte "Berechtigungen".
-
Wechseln Sie im linken Bereich auf die Registerkarte "API-Endpunkte.
Markieren Sie den Endpunkt "/taskmanagementTeams".
-
Klicken Sie auf "Hinzufügen".
Sie gelangen in den Dialog "Rechteinhaber hinzufügen".
-
Wählen Sie den Benutzer "David Winter" aus.
-
Klicken Sie auf "OK".
Der Benutzer "David Winter" wird angezeigt.
Er verfügt über das Recht "Endpunkt benutzen".
Klicken Sie auf "OK".
Sie gelangen zurück in die Applikation.
-
Klicken Sie auf das - Icon (Applikation vollständig veröffentlichen).
Schritt-für-Schritt
-
Starten Sie das Modul "Integration".
-
Klicken Sie auf "Application-API" > "API-Keys".
-
Klicken Sie mit der rechten Maustaste auf "API-Keys ohne Rolle".
Ein Kontextmenü wird angezeigt.
-
Klicken Sie auf "Neuen API-Key erstellen".
Das Dialogfenster "Neuen API-Key erstellen" wird angezeigt.
-
Erfassen Sie im Feld "Name" einen sprechenden Namen für den API-Key.
-
Wählen Sie im Auswahlfeld "Benutzer" den Benutzer "David Winter" aus.
-
Aktivieren Sie das Kontrollkästchen "Aufgabenplanung".
Der API-Endpunkt wird dadurch automatisch mitaktiviert.
-
Klicken Sie auf "OK".
Der API-Key-Eintrag wird unterhalb von "API-Keys ohne Rolle" angezeigt.
Schritt-für-Schritt
-
Starten Sie das Modul "Integration".
-
Klicken Sie auf "Application-API" > "API-Endpunkte".
-
Markieren Sie die Applikation, für die Sie die Swagger-Dokumentation erstellen möchten.
-
Führen Sie einen Rechtsklick aus.
Ein Kontextmenü wird angezeigt.
-
Klicken Sie auf "Swagger-Dokumentation erstellen".
-
Speichern Sie die Swagger-Dokumentation.
Die Swagger-Dokumentation wird im Format "yaml" abgelegt ("taskmanagement.yml").
Schritt-für-Schritt
-
Starten Sie Postman.
-
Klicken Sie im linken Navigationsbereich auf den Menüpunkt "APIs".
-
Klicken Sie auf "Import".
Ein Import-Dialog wird angezeigt.
-
Wählen Sie die zuvor gesicherte .yml-Datei aus ("taskmanagement.yml").
-
Klicken Sie auf "Import".
Ein Dialog wird angezeigt, der den Import bestätigt.
Die Intrexx-API wird angezeigt.
Schritt-für-Schritt
-
Klicken Sie auf das Verzeichnis mit dem Namen der importierten Swagger-Dokumentation.
-
Klicken Sie auf die Registerkarte "Authorization".
-
Wählen Sie in der Auswahlliste "Type" den Wert "API Key" aus ().
-
Tragen Sie im Eingabefeld "Key" den Wert "X-API-KEY" ein ().
-
Hinterlegen Sie im Eingabefeld "Value" den API-Key, den Sie aus Intrexx kopiert haben (siehe Schritt 8 - API-Key kopieren)().
-
Wählen Sie im Auswahlfeld "Add to" den Wert "Header" aus ().
-
Speichern Sie Ihre Angaben.
Schritt-für-Schritt
-
Klicken Sie auf den API-Endpunkt "Get-all-teams" ().
-
Deaktivieren Sie auf der Registerkarte "Params" die Query Params KEYs (). (Die entsprechenden Einstellungen werden durch die Swagger-Dokumentation gesteuert.)
-
Klicken Sie auf "Send".
Die von Ihnen definierten Rückgabewerte werden unter "Body" angezeigt.
Anzeige auf der Registerkarte "Visualize"
Postman bietet über die Registerkarte "Visualize" die Möglichkeit, die übermittelten JSON-Daten im HTML-Format darzustellen.
Hierzu müssen Sie auf der Registerkarte "Tests" einen entsprechenden Code hinterlegen (). Detaillierte Informationen hierzu finden Sie unter folgendem Link: Postman Learning Center - Visualizing responses.
Wenn Sie anschließend den Request noch einmal ausführen und auf die Registerkarte "Visualize" () wechseln, werden die Daten so dargestellt, wie sie gegebenenfalls auch in einer App oder in einer Cloud-Lösung angezeigt werden.
Unten finden Sie den Code, der in der Registerkarte "Tests" verwendet wurde.
Beispiel-Codepm.test("Status code is 200 and Present in Tabular form", function () { pm.response.to.have.status(200); let template = ` <style type="text/css"> .ixtable {font-size:14px;color:#ffffff;width:100%;border-width: 1px;border-color: #00a3c7;border-collapse: collapse;} .ixtable th {color: #ffffff;font-size:16px;background-color:#00a3c7;border-width: 1px;padding: 8px;border-style: solid;border-color: #87ceeb;text-align:left;} .ixtable tr {color:#2a2a2a;background-color:#ffffff;} .ixtable td {font-size:14px;border-width: 1px;padding: 8px;border-style: solid;border-color: #87ceeb;} .ixtable tr:hover {background-color:#e0ffff;} </style> <div> <table class="ixtable" border="1"> <tr> <th>Name</th> <th>Teamleader</th> <th>Beschreibung</th> </tr> {{#each .}} <tr> <td>{{teamTitle}}</td> <td>{{teamFullNameTeamLeader}}</td> <td>{{teamDescription}}</td> </tr> {{/each}} </table> </div>`; let response = pm.response.json(); pm.visualizer.set(template, response.data); });