Exposer un «Web service» à travers une interface REST Objectif: Apprendre comme
Exposer un «Web service» à travers une interface REST Objectif: Apprendre comment developper une application SPA (Single Page Application), et qui offre un Web Service, en utilisant Angular 8 comme interface frontale (front-end) et Spring boot API (Application Programming Interface) CRUD (Create Read Update Delete) RESTful comme backend. Quelques définitions: ---API: L’API, pour Application Programming Interface, est la partie du programme qu’on expose officiellement au monde extérieur pour manipuler celui-ci. L’API est au développeur ce que l’User Interface est à l’utilisateur. Cette dernière permet d’entrer des données et de les récupérer la sortie d’un traitement. Initialement, une API regroupe un ensemble de fonctions ou méthodes, leurs signatures et ordre d’usage pour obtenir un résultat. La mise en place d’une API permet d’opérer une séparation des responsabilités entre le client et le serveur. Cette séparation permet donc une portabilité et évolutivité grandement améliorées. Chaque composant peut évoluer séparément car il n’y a aucun logique du côté du serveur. Ains on peut imaginer une refonte totale de la charte graphique du site web sans devoir modifier le code côté serveur ou sur les autres clients (mobiles par exemple). Réf: https://www.supinfo.com/articles/single/5642-qu-est-ce-qu-une-api-rest-res tful ---CRUD: Le terme CRUD est étroitement lié avec la gestion des données numériques. Plus précisément, CRUD est un acronyme des noms des quatre opérations de base de la gestion de la persistance des données et applications : ●Create (créer), ●Read ou Retrieve (lire), ●Update (mettre à jour), ●Delete ou Destroy (supprimer). Plus simplement, le terme CRUD résume les fonctions qu’un utilisateur a besoin d’utiliser pour créer et gérer des données. Divers processus de gestion des données sont basés sur CRUD, cependant les opérations sont spécifiquement adaptées aux besoins des systèmes et des utilisateurs, que ce soit dans la gestion des bases de données ou pour l’utilisation des applications. Ainsi, les opérations sont des outils d’accès classiques et indispensables avec lesquels les experts, peuvent par exemple vérifier les problèmes de base de données. Tandis que pour un utilisateur, CRUD signifie la création d’un compte (create), l’utilisation à tout moment (read), la mise à jour (update) ou encore la suppression (delete). Réf: https://www.ionos.fr/digitalguide/sites-internet/developpement-web/crud-l es-operations-de-base-de-donnees-les-plus-importantes/ --- Web Service: Un service web (ou Web service) est un médium standardisé permettant la communication entre les applications clients et serveur sur le World Wide Web. Il s’agit d’un module logiciel conçu pour effectuer certaines tâches. Une fois invoqué, un service web est en mesure de fournir ses fonctionnalités au client qui l’invoque. Le client invoque une série d’appels de service web par le biais de requêtes envoyées au serveur qui héberge le service. Ces requêtes sont effectuées par le biais d’appels de procédure distante (Remote Procedure Calls). Par exemple, Amazon propose un service web fournissant les prix pour des produits vendus en ligne via Amazon.com. Le front end ou la couche de présentation peuvent être en .Net ou en Java, mais ces deux langages de programmation auront la capacité de communiquer avec le service web. Le principal composant d’un service web sont les données transférées entre le client et le serveur. Ces données sont en XML (Extensible Markup Language). Le XML est la contrepartie du HTML. Pour faire simple, on peut le décrire comme un langage intermédiaire compris par la plupart des langages de programmation. Ainsi, les applications communiquent entre elles en XML. Réf: https://www.lebigdata.fr/services-web-definition ---API REST ou API SOAP? Il existe actuellement deux types d’architecture très utilisées pour les API : Simple Object Access Protocol (SOAP)et Representational State Transfer (REST). SOAP et REST sont deux solutions permettant à un client d’accéder à des services web. Le choix d'abord peut sembler facile, mais parfois il peut être étonnamment difficile. D’un côté, SOAP, initialement développé par Microsoft, est un protocole d'accès aux services Web qui existe depuis un certain temps. De l’autre, l’architecture REST est la nouvelle venue. Elle vise à résoudre certains problèmes rencontrés avec SOAP et donner la possibilité de mettre en place une méthode vraiment simple afin d’accéder à des services web. Les deux techniques ont des problèmes à prendre en compte au moment de décider quel protocole utiliser. Avant d'aller plus loin, il est important de préciser que même si SOAP et REST présentent des similitudes en utilisant le protocole HTTP, SOAP est un ensemble plus rigide que REST. REST a une architecture qui ne nécessite pas de traitement et qui est naturellement plus flexible. SOAP et REST reposent sur des règles bien établies que tout le monde a accepté de respecter dans l'intérêt de l'échange d'informations. Réf: https://www.supinfo.com/articles/single/5642-qu-est-ce-qu-une-api-rest-res tful --- API RESTfull: REST (Representational State Transfer) ou RESTful est un style d’architecture permettant de construire des applications (Web, Intranet, Web Service). Il s’agit d’un ensemble de conventions et de bonnes pratiques à respecter et non d’une technologie à part entière. L’architecture REST utilise les spécifications originelles du protocole HTTP, plutôt que de réinventer une surcouche (comme le fait SOAP). Pour créer une APi RESTfull, on doit respecter les règles suivantes: Règle n°1 : l’URI comme identifiant des ressources. Règle n°2 : les verbes HTTP comme identifiant des opérations. Règle n°3 : les réponses HTTP comme représentation des ressources. Règle n°4 : les liens comme relation entre ressources. Règle n°5 : un paramètre comme jeton d’authentification. Architecture REST Réf: https://blog.nicolashachet.com/developpement-php/larchitecture-rest-expli quee-en-5-regles/ Projets à construire: Pour atteindre votre objectif, vous allez créer deux projets: 1) api-rest-crud-backend-springboot: Ce projet est utilisé pour développer des APIs CRUD RESTFul pour un système de gestion de comptes bancaires simple en utilisant Spring Boot 2, JPA et MySQL comme base de données. 2) angular8-frontend-springboot-client: Ce projet est utilisé pour développer une application de page unique (SPA) en utilisant Angular 8 comme technologie frontale. Cette application Angular 8 utilise les API CRUD Restful développées et exposées par un api-rest-crud-backend-springboot-jpa. Spécifications des fonctionnalités: + Créez un compte bancaire, + Mettre à jour un compte bancaire, + Voir un compte bancaire, + Supprimer un compte bancaire, + Lister tous les comptes bancaires créés. Outils et technologies à utiliser: ➔Technologies côté serveur (backend): ●Spring Boot (2.0.5.RELEASE): Spring Boot est un sous projet de Spring qui vise à rendre Spring plus facile à utiliser en éliminant plusieurs étapes de configuration. L'objectif de Spring Boot est de permettre aux développeurs de se concentrer sur les tâches techniques et non des tâches de configurations, de déploiements, etc. Ce qui a pour conséquences un gain de temps et de productivité ●JDK (1.8 ou version ultérieure): Le kit de développement Java (JDK: Java Development Kit) est un environnement de développement logiciel utilisé pour développer des applications Java. Il comprend l'environnement d'exécution Java (JRE: Java Runtime Environment), un interpréteur (java), un compilateur (javac), un archiveur (jar), un générateur de documentation (javadoc) et d'autres outils nécessaires au développement Java. ●Spring Framework (5.0.8 RELEASE): Spring est un framework très riche permettant de structurer, d’améliorer et de simplifier l’écriture d’application Java EE. Les applications Spring sont faiblement couplées grâce à l’injection de dépendance. Il fournit des modèles pour JDBC, Hibernate, JPA, etc. Donc, il n’y a pas besoin d’écrire trop de code. Avec Spring, le test des applications est devenu plus facile en utilisant l’injection de dépendance. ●Spring Data JPA (version 2+): Spring Data JPA met en place une surcouche d'accès à JPA (Java Persistence API), et fournit donc ainsi un ensemble cohérent de fonctionnalités avancées sur lequel s’appuyer pour bâtir et consolider ses applications. ➔Technologies côté front-end: ●Angular (8.0.0 RELEASE): Angular est un framework Javascript côté client qui permet de réaliser des applications de type "Single Page Application". Il est basé sur le concept de l'architecture MVC (Model View Controller) qui permet de séparer les données, les vues et les différentes actions que vous pouvez effectuer. ●Bootstrap 4: Bootstrap est un framework CSS, mais pas seulement, puisqu'il embarque également des composants HTML et JavaScript. Il comporte un système de grille simple et efficace pour mettre en ordre l'aspect visuel d'une page web. Il apporte du style pour les boutons, les formulaires, la navigation… Il permet ainsi de concevoir un site web rapidement et avec peu de lignes de code ajoutées. ●NPM (6.9.0 RELEASE): NPM (Node Package Manager) est un package manager spécialement conçu pour Node.js. Il vous permet de partager des packages (aussi nommés modules) pour qu'ils soient accessible publiquement, permettant alors à d'autres utilisateurs de les installer simplement dans leur projet. ➔Outils: ●Maven (3.2+ RELEASE): Maven est un outil permettant d'automatiser la gestion de projets Java. Parmi les fonctionnalités qu'il offre: la compilation et le déploiement des applications Java, la gestion des librairies requises par l'application, l'exécution des tests unitaires et l'intégration du projet Java dans différents IDE. ●Visual Studio Code IDE (possible pour le développement de deux projets) ●Angular CLI (Command Line Interface). Développement des APIs Spring Boot CRUD REST: Le tableau suivant résume les cinq APIs REST que vous allez développer pour la ressource “compte bancaire”: num API nom API méthode HTTP URI code statut description 1 GET accounts GET /api/v1/accounts 200 (OK) tous les comptes sont récupérés. 2 POST account POST /api/v1/accounts 201 (Created) nouveau compte est créé. 3 GET account GET /api/v1/accounts /{id} 200 (OK) un seul
Documents similaires










-
31
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 01, 2022
- Catégorie Administration
- Langue French
- Taille du fichier 0.5219MB