Article
· Mars 13, 2023 4m de lecture

InterSystems IRIS REST API Template

Ce Template s'agit d'un modèle de l' application API REST construite avec ObjectScript dans Intersystems IRIS. Il dispose également d'une spécification OPEN API, peut être développé avec Docker et VSCode et peut être déployé en tant que module IPM.

Conditions préalables

Assurez-vous que vous avez installé git et Docker desktop.

Installation avec IPM

zpm:USER>install rest-api-template

Installation pour le développement

Créez votre référentiel à partir d'un modèle.

Clonez/git le dépôt dans n'importe quel répertoire local, par exemple comme indiqué ci-dessous (je montre ici tous les exemples liés à ce dépôt, mais je suppose que vous avez vos propres exemples dérivés du modèle) :

$ git clone git@github.com:intersystems-community/iris-rest-api-template.git

Ouvrez le terminal dans ce répertoire et lancez:

$ docker-compose up -d --build

ou ouvrez le dossier dans VSCode et procédez comme suit: 

Comment s'en servir

Ce modèle crée une application web REST /crud sur IRIS qui met en œuvre 4 types de communication : GET, POST, PUT et DELETE alias opérations CRUD. Ces interfaces fonctionnent avec un exemple de classe persistante dc.Sample.Person.

Ouvrez http://localhost:52773/swagger-ui/index.html pour tester l'API REST

Test des requêtes GET

Pour tester GET, vous devez disposer de données. Vous pouvez les créer avec une requête POST (voir ci-dessous), ou vous pouvez créer de fausses données de test. Pour cela, ouvrez le terminal IRIS ou le terminal web sur /localhost:52773/terminal/ et appelez :

USER>do ##class(dc.Sample.Person).AddTestData(10)

Cela va créer 10 enregistrements aléatoires dans la classe dc.Sample.Person.

Vous pouvez obtenir la documentation de Swagger Open API 2.0 sur :

localhost:52773/crud/_spec

Cette API REST expose deux requêtes GET: toutes les données et un enregistrement. Pour obtenir toutes les données dans l'appel JSON:

localhost:52773/crud/persons/all

Pour demander les données d'un enregistrement particulier, fournissez l'identifiant dans la requête GET comme 'localhost:52773/crud/persons/id' . Par exemple:

localhost:52773/crud/persons/1

Cela renverra des données JSON pour la personne avec ID = 1, par exemple :

{"Name":"Elon Mask","Title":"CEO","Company":"Tesla","Phone":"123-123-1233","DOB":"1982-01-19"}

Test de la requête POST

Créez une requête POST, par exemple dans Postman, avec des données brutes en JSON, par exemple.

{"Name":"Elon Mask","Title":"CEO","Company":"Tesla","Phone":"123-123-1233","DOB":"1982-01-19"}

Ajustez l'autorisation si nécessaire - elle est basique pour le conteneur avec le login et le mot de passe par défaut pour le conteneur de l'édition communautaire IRIR

et envoyez la requête POST à localhost:52773/crud/persons/

Cela va créer un enregistrement dans la classe dc.Sample.Person d'IRIS.

Test de la requête PUT

La requête PUT pourrait être utilisée pour mettre à jour les enregistrements. Il faut envoyer le même JSON que dans la requête POST ci-dessus en fournissant l'identifiant de l'enregistrement mis à jour dans l'URL. Par exemple, nous voulons changer l'enregistrement avec id = 5. Préparez le JSON en format raw dans Postman comme suit :

{"Name":"Jeff Besos","Title":"CEO","Company":"Amazon","Phone":"123-123-1233","DOB":"1982-01-19"}

et envoyez la requête put à:

localhost:52773/crud/persons/5

Test de la requête de suppression DELETE

Pour la requête de suppression, cette API REST attend uniquement l'identifiant de l'enregistrement à supprimer. Par exemple, si l'id=5, l'appel de suppression DELETE suivant supprimera l'enregistrement:

localhost:52773/crud/persons/5

Comment lancer le codage

Ce référentiel est prêt à être codé dans VSCode avec le plugin ObjectScript. Installez VSCode et le plugin ObjectScript et ouvrez le dossier dans VSCode. Ouvrez la classe /src/cls/PackageSample/ObjectScript.cls et essayez d'y apporter des modifications - elle sera compilée dans le conteneur docker IRIS en cours d'exécution.

N'hésitez pas à supprimer le dossier PackageSample et à placer vos classes ObjectScript sous la forme /src/cls/Package/Classname.cls

Le script dans Installer.cls importera tout ce que vous placez sous /src/cls dans IRIS.

Contenu du référentiel

Dockerfile

Le fichier docker le plus simple pour démarrer IRIS et charger ObjectScript à partir du dossier /src/cls Utilisez le fichier docker-compose.yml associé pour configurer facilement des paramètres supplémentaires comme le numéro de port et où mapper les clés et les dossiers d'hôte.

.vscode/settings.json

Fichier de configuration pour vous permettre de coder immédiatement en VSCode avec le plugin VSCode ObjectScript.

.vscode/launch.json

Fichier de configuration si vous voulez déboguer avec VSCode ObjectScript

Discussion (0)2
Connectez-vous ou inscrivez-vous pour continuer