Vor einigen Monaten haben wir bekannt gegeben, dass Qodly Studio jetzt unter für alle unsere SILVER-Partnern (und höher) verfügbar ist.
Qodly Studio für 4D ist vollständig in 4D integriert, so dass 4D Server Ihre Anwendung mit Desktop- und Webseiten hosten kann.
Qodly Studio ist auch über Qodly zugänglich, als Teil des neu eingeführten SaaS-Angebots von 4D. Diese innovative hybride Low-Code-Lösung ist speziell für Webbrowser-basierte Geschäftsanwendungen konzipiert.
Auch wenn Sie bereits Anwendungen auf der Qodly Plattform entwickelt haben, haben wir gute Nachrichten! Mit 4D 20R5 können Sie jetzt die REST API einer Qodly Anwendung nutzen, um nahtlos mit Ihren Daten zu arbeiten.
Lesen Sie weiter, um mehr zu erfahren.
Hauptprinzipien
Das System der Rollen und Privilegien
Diese Funktion basiert auf einem API-Schlüssel-Mechanismus, der an das in 4D 19 R8 enthaltene Rollen- und Berechtigungssystem gebunden ist. Es handelt sich um ein leistungsfähiges und vollständig anpassbares System zum Schutz Ihrer Daten vor nicht autorisierten Benutzern. Der Zugriff auf die Daten wird je nachdem gewährt, wer darauf zugreift und auf welche Daten zugegriffen wird. Dies geschieht durch die Einrichtung vonRollen.
Bevor Sie beginnen, sollten Sie sich ein paar grundlegende Kenntnisse über diese Funktion aneignen.
Umgang mit API-Schlüsseln auf dem Qodly-Dashboard
Auf dem Qodly-Dashboard ist eine Endpunkt-URL für den REST-Zugang angegeben.
Sie können auch einen API-Schlüssel generieren und ihn mit einer Rolle verknüpfen. Dieser API-Schlüssel ermöglicht den REST-Zugriff auf die in Ihrer Qodly-App exponierten Daten und erlaubt es Ihnen, alle für die zugehörige Rolle zulässigen Aktionen auszuführen.
Sehen Sie sich auch die Qodly-Dokumentation an, um die anderen Funktionalitäten im Zusammenhang mit API-Schlüsseln kennenzulernen (ein Ablaufdatum festlegen, einige Client-IPs autorisieren, … usw.)
Verwenden Sie die REST-API einer Qodly-Anwendung
Sie können die REST API Ihrer Qodly Anwendung von:
- einer 4D Server Anwendung (mit dem Befehl Open datastore oder der Klasse HTTPRequest )
- Jede Anwendung eines Drittanbieters, die REST Anfragen unterstützt
Szenario
Betrachten Sie eine Qodly Anwendung, die Produkte verwaltet und eine Produktdatenklasse zur Verfügung stellt. Eine 4D Server Anwendung(Factory) muss die REST API nutzen, um Produkte zu lesen oder zu erstellen. Die Qodly-Applikation Products ist durch das Rollen- und Privilegiensystem vor unberechtigtem Zugriff geschützt.
Vorbereitung des Zugriffs auf die Rest-API
Richten Sie zunächst Rollen ein, die über die Schnittstelle Rollen und Privilegien in Qodly Studio bestimmte Aktionen auf definierten Daten durchführen dürfen.
Das Lesen der Produktdatenklasse ist für die Rolle “ Mitarbeiter“ aufgrund der Privilegstufe„einfach“ erlaubt, die sie besitzt.
Damit eine Client-Anwendung die REST-API der Qodly-App Produkte nutzen kann, haben wir auf dem Qodly-Dashboard Produkte einen API-Schlüssel generiert, der mit der Rolle Mitarbeiter verknüpft ist:
Die Rest-API der Qodly App Products in einer 4D Server Anwendung mit dem Befehl open datastore nutzen
In der 4D Server Client Anwendung(Factory) muss die Liste der Produkte angezeigt werden.
Hier ist der 4D Code:
Form.products:=ds.getProducts("Employee")
Und hier ist die DataStore-Klasse:
Class extends DataStoreImplementation
exposed Function getProductsDatastore($apiKey : Text; $id : Text) : 4D.DataStoreImplementation
//End point URL given on the Qodly dashboard
var $connect : Object:={hostname: "https://xxx-yyyyyyyy-zzzz-xxxx-yyyy-zzzzzzzzzzzz.xx-yyy.acme.com"; tls: True}
var $theRemoteDS : 4D.DataStoreImplementation
$connect["api-key"]:=$apiKey
$theRemoteDS:=Open datastore($connect; $id)
return $theRemoteDS
exposed Function getProducts($role : Text) : 4D.EntitySelection
var $apiKey : Text
var $theRemoteDS : 4D.DataStoreImplementation
$apiKey:="82c0abfe-0628-4446-b890-9add5509335c"
$theRemoteDS:=This.getProductsDatastore($apiKey; $role)
return $theRemoteDS.product.all()
In der Funktion getProducts() verwenden wir den API-Schlüssel, der der Rolle Employee entspricht.
Mit Hilfe der Funktion getProductsDatastore() erhalten wir das DataStore-Objekt, das der Qodly-App Products entspricht. Auf dieser Products-Instanz wird eine Sitzung eröffnet. Sie enthält die Privilegien der Employee-Rolle.
So können wir mit diesem Datenspeicherobjekt alle für die Rolle Mitarbeiter zulässigen Aktionen ausführen.
WICHTIG:
– Der API-Schlüssel muss nur einmal angegeben werden (als Eigenschaft „api-key“ im connect-Objekt), wenn der Befehl Open datastore aufgerufen wird.
– die Endpunkt-URL, die auf dem Qodly-Dashboard der Instanz Products angegeben ist, wird als Hostname verwendet.
– Für ein schnelles Verständnis haben wir den API-Schlüssel als fest codierten Wert im Code verwendet. Aus Sicherheitsgründen sollte er sich in einer extern geschützten Datei befinden (nicht auf GitHub synchronisiert, zum Beispiel).
Hier ist das Ergebnis der 4D Server Anwendung:
Verwendung der Rest-API der Produkte qodly app Von jeder Anwendung mit REST-Anfragen
Das folgende Beispiel zeigt, wie Sie mit Postman REST-Anfragen an die REST-API einer Qodly-Anwendung stellen können. Das beigefügte HDI zeigt auch, wie solche Anfragen mit der Klasse HTTPRequest, JavaScript oder anderen Technologien ausgeführt werden können.
Beachten Sie, dass der API-Schlüssel im „api-key“-Header für jede REST-Anfrage übergeben werden muss.
In den obigen Beispielen werden einige Daten gelesen, aber Sie können mit der REST-API auch Daten erstellen, aktualisieren oder löschen.
Weitere Informationen
Sehen Sie sich das beigefügte Video an, um ein komplettes Beispiel zu sehen, von der Erstellung einer Sandbox-Demo auf Qodly bis zur Verwendung der REST-API.
Besuchen Sie die Qodly-Website, um mehr zu erfahren und über neue Funktionen auf dem Laufenden zu bleiben!