Einfache Nutzung der REST-API von Qodly

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.

HDI_Qodly_App_REST_API

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.

blank

Das Lesen der Produktdatenklasse ist für die Rolle “ Mitarbeiter“ aufgrund der Privilegstufe„einfach“ erlaubt, die sie besitzt.

blank

 

blank

 

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:

blank

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:

blank

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.

blank

 

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!

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert ist seit 2017 als Product Owner im 4D Produktteam tätig. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Marie-Sophie ist Absolventin der ESIGELEC Ingenieurschule und begann ihre Karriere als Ingenieurin bei IBM im Jahr 1995. Sie nahm an verschiedenen Projekten teil (Wartungs- oder Build-Projekte) und arbeitete als Cobol-Entwicklerin. Dann arbeitete sie als UML-Designerin und Java-Entwicklerin. In letzter Zeit bestand ihre Hauptaufgabe darin, funktionale Anforderungen zu analysieren und zu schreiben sowie Geschäfts- und Entwicklungsteams zu koordinieren.