Génération de service web : - flanjersi/TER_GENREST GitHub Wiki

C’est le module le plus important de l’application puisqu’il est chargé de générer le code des service web RESTful à partir des spécifications exprimées. Comme illustré dans le diagramme de classe, les spécifications de l’API REST sont symbolisées au sein d’une entité projet. Aussi, quelques soit le langage de programmation, un service web REST est composé des mêmes éléments. On a :

  • Une méthode http : GET pour récupérer, PUT pour créer ou modifier, DELETE pour supprimer etc…
  • Une URL : qui pointe vers l’emplacement des données en respectant une certaine architecture
  • Les données à renvoyer

D’une part on s’appuie sur le modèle de données découlant des entités décrit dans le diagramme de classe, pour mettre en place l’architecture du code du service web REST. Par exemple, pour accéder aux données du capteur 4 situé dans le couloir numéro 1, du troisième étage du bâtiment numéro 1, le programme génère l’URL :

GET /buildings/1/floors/3/corridors/1/sensors/4

En effet, comme vous le constatez, la structure de l’URL est très fidèle à notre modèle de données et reprend les différentes classes ainsi que les relations entre ces derniers. D’autres part, on a utilisé Freemarker. C’est un moteur de template open source proposée par la fondation apache. Ce dernier permet de générer un fichier à partir d’un template, et d’un modèle.

************************ Fonctionnement de Freemarker photo *************************

Ainsi, à l’aide de cet outil nous avons mis en place un template pour le code des services REST en javascript, et un template décrivant l’environnement technique, c’est-à-dire la configuration du serveur de déploiement, ExpressJS de la plateforme NodeJS en l’occurrence. De la même façon, si on veut ajouter un autre langage pour le code du service web, et tant que le modèle de données reste inchangé, il suffira d’écrire le template correspondant à la syntaxe des services web REST de ce langage, et le template de la configuration de l’environnement technique. Enfin, pour ce qui est de l’installation des serveurs de déploiement nous avons prévu des scripts selon le système d’exploitation choisi.

⚠️ **GitHub.com Fallback** ⚠️