Utiliser facilement l’API REST de Qodly

Il y a quelques mois, nous avons annoncé que Qodly Studio était désormais disponible pour tous nos partenaires Silver (et plus).

Qodly Studio pour 4D est entièrement intégré à 4D, permettant à 4D Server d’héberger votre application avec des pages locales et des pages web.

Qodly Studio est également accessible sur Qodly, dans le cadre de la nouvelle offre SaaS de 4D. Cette solution hybride innovante avec peu de code est spécialement conçue pour les applications professionnelles basées sur un navigateur web.

Vous avez peut-être déjà créé des applications en utilisant la plateforme Qodly et nous avons d’autres bonnes nouvelles !

Avec 4D 20R5, vous pouvez désormais utiliser l’API REST d’une application Qodly pour travailler de manière transparente avec vos données.

Continuez à lire pour en savoir plus.

HDI_Qodly_App_REST_API

grands principes

le système de rôles et de privilèges

Cette fonctionnalité repose sur un mécanisme de clé API lié au système de rôles et de privilèges fourni dans 4D 19 R8. Il s’agit d’un système puissant et entièrement personnalisable pour protéger vos données des accès non autorisés. L’accès aux données est accordé en fonction de la personne qui y accède et des données auxquelles elle accède. Pour ce faire, des rôles sont définis.

Avant de commencer, assurez-vous d’avoir quelques connaissances de base sur cette fonctionnalité.

gérer les clés API sur le tableau de bord qodly

Sur le tableau de bord de Qodly, une URL de point de terminaison pour l’accès REST est donnée.

Vous pouvez également générer une clé API et l’associer à un rôle. Cette clé API fournit un accès REST aux données exposées dans votre application Qodly et vous permet d’exécuter toutes les actions autorisées pour le rôle associé.

Consultez également la documentation de Qodly pour connaître les autres fonctionnalités liées aux clés API (définir une date d’expiration, autoriser certaines IP clientes, … etc).

Utiliser l’API REST d’une application Qodly

Vous pouvez cibler l’API REST de votre application Qodly à partir de :

  • une application 4D Server (en utilisant la commande Open datastore ou la classe HTTPRequest )
  • Toute application tierce prenant en charge les requêtes REST

 

Scénario d’application

Considérons une application Qodly qui gère des produits, exposant une classe de données product. Une application 4D Server (Factory) doit utiliser l’API REST pour lire ou créer des produits. L’application Qodly Products est protégée contre les accès non autorisés par le système de rôles et de privilèges.

Préparer l’accès à l’API REST

Tout d’abord, définissez les rôles qui sont autorisés à effectuer des actions spécifiques sur des données définies à l’aide de l’interface Rôles et privilèges de Qodly Studio.

blank

La lecture de la classe de données product est autorisée pour le rôle Employee en raison du niveau de privilège« simple » qu’il possède.

blank

 

blank

 

Pour permettre à une application cliente d’utiliser l’API REST de l’application Qodly Products, nous avons généré sur le tableau de bord Qodly Products une clé API associée au rôle Employee:

blank

utiliser l’API REST de l’application qodly products dans une application 4D Server avec la commande open datastore

Dans l’application cliente 4D Server(Factory), la liste des produits doit être affichée.

Voici le code 4D :

Form.products:=ds.getProducts("Employee")

Et voici la classe DataStore :

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()

Dans la fonction getProducts(), nous utilisons la clé API correspondant au rôle Employee.
Grâce à la fonction getProductsDatastore(), nous obtenons l’objet datastore correspondant à l’application Products Qodly. Une session est ouverte sur cette instance Products. Elle contient les privilèges du rôle Employee.

Ainsi, avec cet objet datastore, nous pouvons exécuter toutes les actions autorisées pour le rôle Employee.

Remarque :
– la clé API ne doit être donnée qu’une seule fois (en tant que propriété « api-key » dans l’objet connect) lors de l’appel de la commande Open datastore
– l’URL du point de terminaison indiqué dans le tableau de bord Qodly de l’instance de produits est utilisé comme nom d’hôte.
– pour une compréhension rapide, nous avons utilisé la clé API comme valeur codée en dur dans le code. Pour des raisons de sécurité, elle devrait se trouver dans un fichier protégé en externe (non synchronisé sur GitHub, par exemple).

Voici le résultat de l’application 4D Server :

blank

utiliser l’API rest de l’application qodly products Depuis n’importe quelle application utilisant des requêtes REST

L’exemple ci-dessous montre comment utiliser Postman pour exécuter des requêtes REST ciblant l’API REST d’une application Qodly. Le HDI joint montre également comment exécuter de telles requêtes à l’aide de la classe HTTPRequest, de JavaScript ou d’autres technologies.

Notez que la clé API doit être transmise dans l’en-tête « api-key » pour chaque requête REST.

blank

 

Les exemples ci-dessus présentent des données en lecture, mais vous pouvez également créer, mettre à jour ou supprimer des données à l’aide de l’API REST.

En savoir plus

Regardez la vidéo ci-dessous pour un exemple complet, de la création d’une démo sandbox sur Qodly à l’utilisation de l’API REST.

Et visitez le site web de Qodly pour en savoir plus et rester informé des nouvelles fonctionnalités !

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert a rejoint l'équipe de 4D Product en tant que Product Owner en 2017. En tant que Product Owner, elle est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Marie-Sophie est diplômée de l'école d'ingénieur ESIGELEC et a commencé sa carrière en tant qu'ingénieur chez IBM en 1995. Elle a participé à divers projets (projets de maintenance ou de construction) et a travaillé en tant que développeur Cobol. Elle a ensuite travaillé en tant que concepteur UML et développeur Java. Dernièrement, ses principaux rôles étaient d'analyser et de rédiger des exigences fonctionnelles, de coordonner les équipes commerciales et de développement.