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.
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.
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.
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:
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 :
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.
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 !