RESTful - Guide rapide pour les débutants

30 octobre 2021

Si vous désirez construire un interface de programme d'application (API) pour les applications Web, RESTful est utilisé. Qu'est-ce qu'une interface de programme d'application (API) ? Une interface de programme d'application est un médiateur entre deux applications logicielles. Il permet à deux applications logicielles de communiquer entre elles en toute sécurité. Les applications API typiques dans la vie quotidienne utilisent Facebook, utilisent des applications de chat ou utilisent une application de prévision météo sur le téléphone mobile.

Observons un exemple simple pour comprendre ce qu'est exactement une API ? Prenons l'exemple d'un restaurant. Nous allons au restaurant et mangeons la nourriture de notre choix. Ce que nous faisons, c'est que nous observons la carte de menu et informons le serveur de vos éléments sélectionnés dans le menu. Le serveur informe ensuite votre commande au service de cuisine et votre nourriture est préparée. Une fois que la nourriture est prête, le serveur vous la sert à votre table. Ici, le serveur est l'interface entre vous et le service cuisine. La même chose se produit lorsque deux systèmes communiquent.

Une interface de programme d'application (API) est classée en quatre types principaux : les API ouvertes, les API partenaires, les API internes et les API composites. Les OepnAPI sont accessibles à tous, car elles sont disponibles publiquement. Dans les API partenaires, un utilisateur particulier a besoin du droit approprié pour y accéder, car elles ne sont pas développées pour un usage public. Les API internes sont spécialement conçues pour l'usage interne de l'entreprise. Enfin, les API composites sont généralement utilisées pour accélérer les opérations et les performances de l'entreprise.



Un autre type d'API est les API de service Web. Il existe quatre principales API de service Web : SOAP, XML-RPC, JSON-RPC et REST. SOAP implique un Protocole d'accès aux objets simple , qui transfère les données au format XML. L'API SOAP implique l'utilisation de Langage de définition des services Web (WSDL) pour définir son interface. Une autre API de service Web est XML-RPC . Comme son nom l'indique, il utilisait le formulaire XML pour le partage de données. L'API XML-RPC est plus simple et plus accessible que l'API SOAP.

La prochaine API de service Web est JSON-RPC . C'est la même API que XML, mais elle utilise le format JSON pour le partage de données. Enfin, l'API REST est différente des trois précédentes. C'est le recueil des normes architecturales. L'API REST est également appelée API RESTful. C'est l'une des API de service Web les plus utilisées, car elle nécessite exceptionnellement moins de bande passante.

Dans cet article, nous verrons un guide rapide sur le service Web RESTful. Cet article vous aidera à tout savoir sur le service Web RESTful. Nous avons expliqué les concepts de service Web RESTful plus simplement avec des exemples simples. Une chose à retenir avant de commencer à comprendre le RESTful L'API est que vous devez posséder une meilleure connaissance du langage de programmation Java, HTML, CSS, AJAX et de l'éditeur de texte, car RESTful est un service Web permettant de développer des applications Web. Alors, commençons notre tutoriel sur l'API RESTful.

Table des matières

Qu'est-ce que l'API de service Web RESTful ?

Avant de savoir ce qu'est l'API RESTful, nous devons d'abord savoir ce qu'est réellement le service Web. UNE service Web est un ensemble de normes ou de principes nécessaires au partage ou à l'échange de données entre systèmes. Aujourd'hui, nous utilisons plusieurs applications sur nos téléphones mobiles et nos ordinateurs de bureau. Ces applications sont écrites dans de nombreux langages de programmation et fonctionnent toujours sur des systèmes d'exploitation distincts. Un service Web vous permet d'accéder à une application logicielle particulière sur différents systèmes d'exploitation.

L'API RESTful est une API de service Web. Il comprend une collection de normes architecturales et utilise un protocole HTTP pour accéder et utiliser des données particulières. REPOS implique Transfert d'État représentatif . Dans l'API RESTful, chaque composant impliqué est traité comme une ressource. Vous pouvez accéder à ces ressources en utilisant le Protocole HTTP méthodes.

Il y a un serveur et un client impliqués dans l'API RESTful. Les clients de l'API REST peuvent accéder aux ressources fournies par le serveur et les manipuler. Chaque ressource a un URI ou un ID global distinct. À l'aide de l'URI ou de l'ID global, nous pouvons identifier les ressources dans l'API RESTful. URI implique un Identificateur de ressource uniforme . Vous pouvez utiliser les formats texte, XML.JSON ou JSON dans l'API REST pour la représentation des ressources.

Le service Web RESTful est généralement utilisé par les consommateurs de cloud, leur permettant d'accéder à des services Web et de les gérer. L'API REST est l'un des choix les plus souhaitables pour créer une API robuste. Une API construite à l'aide de l'architecture REST permet aux utilisateurs d'interagir avec les services cloud de manière gérable. Certains des sites Web populaires qui utilisent le service Web RESTful pour créer leurs API sont Services Web Amazon (AWS), Twitter, LinkedIn et Google.

Fonctionnement de l'API RESTful Web Service

Nous avons observé une brève description du service Web RESTful. Maintenant, faites-nous savoir le fonctionnement de l'API RESTful. L'API RESTful décompose chaque transaction entre deux applications en plusieurs modules plus petits. Ici, la transaction implique l'échange de données ou d'informations. Chaque module contient les informations essentielles de la transaction. Par conséquent, les développeurs se sentent à l'aise et flexibles dans la création d'une API pour n'importe quelle application Web.

Aujourd'hui, de nombreuses entreprises, comme Cloud Data Management Interface (CDMI), AmazonS3, etc., proposent leurs modèles particuliers pour développer une API. Il existe de nombreuses commandes dans le service Web de l'API RESTful pour accéder aux ressources. La représentation des ressources définit l'état d'une ressource spécifique à un horodatage donné.

Méthodes HTTP dans l'API de service Web RESTful

L'API de service Web RESTful utilise le protocole HTTP pour accéder aux ressources et les manipuler. Il existe quatre méthodes HTTP principales utilisées dans le service Web RESTful, GET, PUT, POST, DELETE. Faisons brièvement connaissance de chacune de ces méthodes HTTP.

    AVOIR:La méthode GET permet aux utilisateurs d'accéder aux ressources de l'API RESTful. Mais, ils ne peuvent pas être modifiés ou manipulés. En utilisant la méthode GET, vous pouvez uniquement lire les ressources.METTRE:La méthode HTTP PUT permet de modifier les ressources ou de changer leurs états. Il vous permet également de créer une autre nouvelle ressource.PUBLIER:Vous pouvez utiliser la méthode POST pour créer une nouvelle ressource.EFFACER:La méthode HTTP DELETE est utilisée pour supprimer la ressource.

L'API de service Web RESTful prend en charge plusieurs formats de données, tels que application/xml, application/json, application/x-www-form-urlencoded, application.x-web+xml et multipart/form-data.

Propriétés et contraintes de l'architecture d'API RESTful

Le Dr Roy Fielding est le développeur de l'API de service Web RESTful. Vous trouverez ci-dessous quelques propriétés et contraintes importantes de l'architecture de l'API RESTful.

Propriétés de l'API RESTful

  1. L'API RESTful offre des performances élevées aux utilisateurs finaux. Lorsqu'un utilisateur clique sur un lien, il obtient des résultats instantanés. Et les développeurs fournissent tous les services aux utilisateurs.
  2. Une autre propriété de l'API RESTful est l'évolutivité. L'API RESTful fournit des services régulièrement malgré l'augmentation ou la diminution des utilisateurs.
  3. L'API RESTful a une interface uniforme. Toutes les ressources sont identifiées à l'aide de leurs URI respectifs. Par conséquent, cette interface uniforme simplifie l'API RESTful.
  4. La propriété suivante est la modifiabilité. Tout changement dans le système doit avoir lieu avec facilité et confort.
  5. L'architecture de l'API RESTful est hautement portable et fiable.

Contraintes architecturales de l'API RESTful

Pour toute API de service Web RESTful, les six conditions architecturales ci-dessous doivent être remplies.

  1. La première contrainte architecturale pour l'API de service Web RESTful est qu'elle doit utiliser une interface uniforme. Toutes les ressources de l'API RESTful doivent être identifiées à l'aide de leurs URI (Uniform Resource Identifiers) respectifs. Ils doivent être accessibles et manipulés uniquement via les quatre méthodes HTTP, PUT, POST, GET et DELETE.
  2. Le client et le serveur dans l'API RESTful doivent avoir une représentation précise. Le client gère l'interface uniforme et la collecte des demandes. D'autre part, le serveur réglemente la sécurité, l'accès aux données et la gestion de la charge de travail. Le serveur contient toutes les ressources et le client demande des ressources au serveur.
  3. Une autre contrainte architecturale pour l'API de service Web RESTful concerne les opérations sans état. Le client et le serveur dans l'API RESTful doivent suivre des fonctions sans état. Toutes les opérations de gestion d'état doivent être effectuées côté client.
  4. Toutes les API de service Web RESTful doivent effectuer la mise en cache. S'il est représenté que la mise en cache n'est pas possible, seule la mise en cache ne doit pas être effectuée.
  5. L'architecture d'une application particulière doit contenir le serveur sur plusieurs couches. Une seule couche ne doit avoir aucune information concernant les autres couches, à l'exception de sa couche immédiate.
  6. Généralement, le serveur envoie les représentations statiques des ressources au client au format XML ou JSON. Il doit également transmettre le code exécutable au client si nécessaire.

Dans le segment suivant, nous apprendrons comment générer un service Web à l'aide des méthodes HTTP. Nous utiliserons deux méthodes HTTP, GET et POST, pour créer la gestion des utilisateurs. Voici quelques fonctionnalités essentielles utilisées :

  1. En utilisant la méthode HTTP GET avec un corps POST vide, nous afficherons une liste contenant les noms d'utilisateurs. Prenez un identificateur de ressource uniforme comme /Utilisateur/Service/utilisateurs .
  2. Plus tard, nous ajouterons les détails de chaque utilisateur dans une liste. Pour cela, nous utiliserons la méthode HTTP POST, avec JSON String dans le corps POST. Utilisez l'URI comme /Utilisateur/Service/addUser .
  3. Enfin, nous afficherons les détails des utilisateurs distincts à l'aide de la méthode HTTP GET. Gardez le corps POST vide et utilisez l'URI comme /Utilisateur/Service/getUser/:id .

Configuration de l'environnement pour les services Web RESTful

Pour travailler avec le service Web RESTful, nous utiliserons le Cadre Jersey . Ce framework implémente la spécification standard, appelée API JAX-RS 2.0. En utilisant cette spécification, nous pouvons générer des services Web RESTful. Avant de passer au Jersey Framework, nous allons apprendre à configurer l'environnement Eclipse, Tomcat et JDK sur votre système informatique. Nous avons expliqué la configuration des trois environnements sur le système avec des étapes précises et simples.

Comment configurer le kit de développement Java (JDK) ?

le Kit de développement Java (JDK) est l'un des packages essentiels utilisés pour exécuter du code Java. Le package JDK en Java permet aux utilisateurs d'écrire les programmes Java. Vous devez télécharger ce package, nommé JavaSE, à partir de ce site Internet :

Après le téléchargement, installez-le à l'aide des instructions fournies. Une fois cela fait, vous devez fixer les variables d'environnement PATH et JAVA_HOME à l'endroit où 'java' et 'javac' sont présents. Généralement, « java » est présent dans java_install_dir/bin et « javac » est présent dans « java_install_dir ».

Pour corriger les variables d'environnement PATH et JAVA_HOME sur les systèmes Windows XP, NT ou 2000, accédez à 'Poste de travail, cliquez dessus avec le bouton droit de la souris et cliquez sur 'Propriétés'. Vous remarquerez l'onglet 'Avancé'. Cliquez dessus. puis cliquez sur 'Variables d'environnement'. Modifiez les variables d'environnement PATH et JAVA_HOME avec l'emplacement 'java' et 'javac' sur le système, puis cliquez sur le bouton 'OK'. La configuration de votre variable d'environnement est terminée.

Pour les systèmes Linux et Solaris, suivez les étapes ci-dessous. Considérez que vous utilisez un shell C et que vous avez téléchargé le fichier JavaSE à l'emplacement /usr/local/jdk1.7.9_75. Mettez à jour le fichier '.cshrc' avec les commandes ci-dessous :

|__+_|

Comment configurer l'IDE Eclipse ?

La première chose que vous devez suivre est de télécharger les derniers binaires d'Eclipse depuis son site officiel. site Internet .

Après avoir téléchargé les derniers fichiers binaires Eclipse, placez-les à un emplacement approprié sur votre système. Considérons que nous avons localisé les binaires Eclipse sur les systèmes Windows dans C:eclipse. Nous localiserons les binaires Eclipse à l'emplacement /usr/local/eclipse pour le système Linux ou Unix. Après l'avoir placée au bon endroit, fixez la variable PATH à l'endroit où vous avez conservé les binaires Eclipse.

Pour démarrer Eclipse, double-cliquez sur le fichier eclipse.exe, ou vous pouvez taper la commande ci-dessous à l'invite de commande Windows.

|__+_|

Si vous utilisez Eclipse sur le système Linux ou Solaris, utilisez la commande ci-dessous pour le démarrer.

|__+_|

Si tout se passe bien et que la configuration est correcte, l'application démarre et l'écran d'écriture du code apparaît.

Comment configurer Apache Tomcat ?

Ici, nous comprendrons comment installer et configurer l'environnement de votre système pour Apache Tomcat. Tout d'abord, vous devez télécharger la dernière version de Tomcat sur ce site Internet .

Après avoir téléchargé cette dernière version de Tomcat, placez-la à un emplacement approprié sur votre système.

Considérons que nous avons placé le fichier Tomcat Apache sur le système Windows à l'emplacement C:apache-tomcat-7.0.59. Nous allons placer le fichier Tomcat Apache à l'emplacement /usr/local/apache-tomcat-7.0.59 sur le Linux ou système Solaris. Après cela, vous devez fixer la variable d'environnement CATALINA_HOME à l'endroit où vous avez conservé le fichier Tomcat Apache téléchargé.

Vous pouvez démarrer l'application Tomcat sur votre système Windows en cliquant sur le fichier startup.bat. Vous pouvez également utiliser la commande suivante pour démarrer l'application Tomcat.

|__+_|

ou

|__+_|

Si vous utilisez l'application Tomcat sur le système Linux ou Solaris, vous devez suivre l'une des commandes ci-dessous pour la démarrer.

|__+_|

ou

|__+_|

Lorsque tout va bien, un écran apparaît où vous pouvez écrire le code et l'exécuter. Toutes les applications par défaut avec Tomcat seront disponibles en visitant ci-dessous site Internet :

Les informations complètes sur la configuration de Tomcat et les programmes en cours d'exécution sont disponibles sur le site Internet .

Si vous souhaitez arrêter l'application Tomcat sur le système Windows, tapez l'une des commandes suivantes.

|__+_|

ou

|__+_|

Vous pouvez taper l'une des deux commandes mentionnées ci-dessous pour fermer l'application Tomcat.

|__+_|

ou

|__+_|

Comment configurer les bibliothèques Jersey Framework ?

Après avoir configuré le JDK, Eclipse et Tomcat Apache, vous pouvez maintenant configurer le Jersey Framework. Suivez les instructions ci-dessous dans l'ordre pour télécharger le Jersey Framework.

  1. Tout d'abord, vous devez décider du système d'exploitation, comme Windows ou Unix, pour y installer le Jersey Framework. Si vous choisissez le système Windows, téléchargez le fichier .zip, et pour les systèmes Unix, téléchargez le fichier .tz.
  2. L'étape suivante consiste à télécharger les derniers fichiers binaires de Jersey Framework ci-dessous. site Internet .
  3. Après avoir téléchargé le fichier .zip sur le système Windows, vous devez le décompresser. Supposons que vous ayez téléchargé le fichier jaxrs-ri-2.17.zip. Après avoir décompressé ce fichier, il fournit une structure de répertoires à l'emplacement E:jaxrs-ri-2.17jaxrs-ri.
  4. Toutes les bibliothèques Jersey seront dans le répertoire C:jaxrs-ri-2.17jaxrs-rilib, et les dépendances seront présentes dans C:jaxrs-ri-2.17jaxrs-riext.
  5. Plus tard, corrigez la variable CLASSPATH à l'endroit où vos bibliothèques Jersey sont présentes, le répertoire C:jaxrs-ri-2.17jaxrs-rilib. N'oubliez pas qu'il n'est pas nécessaire de corriger la variable CLASSPATH pour Jersey Framework si vous utilisez l'application Eclipse.

Vous savez maintenant comment configurer l'environnement du service Web RESTful. Suivez toutes les étapes ci-dessus et vous serez prêt à écrire l'exemple de Jersey.

Premier exemple RESTful – Jersey (JAX-RS)

Après avoir configuré les environnements Java, Tomcat Apache, Eclipse et Jersey Framework, vous pouvez commencer à créer des applications Web à l'aide de l'API RESTful. Observons un exemple dans le Jersey Framework pour avoir une idée précise de l'écriture du programme dans l'API RESTful. Vous devez suivre les étapes ci-dessous mentionnées dans l'ordre pour exécuter le programme avec succès.

Étape 1 : Créer un projet Java

Créez un projet Java à l'aide d'un IDE Eclipse. Ici, nous allons créer un projet Web dynamique. Ci-dessous les étapes pour développer le Web Dynamique Projet dans un IDE Eclipse.

  1. Démarrez l'application Eclipse à partir de votre système. Cliquez sur l'option Fichier, cliquez sur Nouveau et sélectionnez le nouveau projet.
  2. Plus tard, choisissez l'assistant Dynamic Web Project dans la liste des assistants.
  3. Après avoir sélectionné l'assistant, donnez le nom souhaité à votre projet, dites PremierRestExemple .
  4. Lorsque vous enregistrez le nom de votre projet dans la fenêtre de l'assistant, accédez à l'Explorateur de projets et vous y remarquerez le nom de votre projet.

Étape 2 : Ajouter les bibliothèques nécessaires

Après avoir créé le projet et l'avoir enregistré avec un nom spécifique, vous devez ajouter les bibliothèques et les dépendances de Jersey Framewoek à votre projet. Nous avons listé les noms des fichiers jar à copier dans le répertoire WEB-INF/lib du projet créé à partir du dossier zip du maillot.

  • jaxrs-ri-2.17jaxrs-riapi
  • jaxrs-ri-2.17jaxrs-riext
  • jaxrs-ri-2.17jaxrs-rilib

Pour ajouter les fichiers jar ci-dessus mentionnés à votre projet, cliquez avec le bouton droit sur votre projet, PremierRestExemple . Cliquez sur l'option Chemin de construction, puis accédez à Configurer le chemin de construction. Ici, vous verrez la fenêtre affichant le Java Build Path. De plus, vous verrez le bouton Ajouter des fichiers JAR sous le menu Bibliothèques. Ajoutez les fichiers jar dans le répertoire WEB-INF/lib.

Étape 3 : Créer les fichiers sources

Nous avons créé notre projet, nommé FirstRestExample, dans l'IDE Eclipse. Maintenant, nous devons créer les fichiers source pour ce projet. Pour créer les fichiers source, nous devons d'abord créer un package, disons com.restexample. Accédez à l'explorateur de packages et cliquez avec le bouton droit sur l'option src. Vous trouverez l'option Nouveau. Cliquez dessus et cliquez plus tard sur l'option Package.

Ici, vous devez créer trois fichiers différents sous le package com.restexample. Nommons les fichiers comme EmployeeService.java, Employee.java et EmployeeDao.java. Dans les trois fichiers, vous avez créé sous le package com.restexmaple, et vous devez écrire le code. Nous allons d'abord écrire le code dans le fichier Employee.java.

Employé.java

|__+_|

EmployéDao.java

|__+_|

EmployeeService.java

|__+_|

Dans le fichier EmployeeService.java ci-dessus, vous devez vous rappeler que nous avons utilisé l'annotation @Path pour spécifier le chemin du service Web. De plus, nous avons également établi un chemin pour la méthode de service Web spécifique à l'aide de l'annotation @Path.

Étape 4 : Créer le fichier Web.xml

Enfin, nous devons créer le fichier Web.xml. L'objectif principal du fichier Web.xml est d'affecter le servlet Jersey Framework à l'application en cours de développement.

web.xml

|__+_|

Étape 5 : Compiler et exécuter le programme

Après avoir écrit les quatre fichiers mentionnés ci-dessus, vous êtes maintenant prêt à compiler et à exécuter le programme. Nous avons utilisé l'IDE Eclipse pour écrire tous les programmes ci-dessus. Par conséquent, nous devons exporter l'application ci-dessus dans un fichier war. Plus tard, nous devons compiler et exécuter ce fichier war dans l'outil Tomcat Apache.

Nous allons montrer ci-dessous comment créer un fichier war dans l'IDE Eclipse.

  • Sur l'IDE Eclipse, accédez à l'option Fichier, cliquez sur Exporter -> Nous -> Fichier War. Là, vous devez choisir votre projet PremierRestExemple et le dossier cible.
  • Plus tard, vous devez localiser le fichier FirstRestExample.war dans le Répertoire d'installation de Tomcat options répertoire d'applications Web . Et lancez l'application Tomcat.

Après avoir placé le fichier war dans le répertoire webapps de Tomcat, vous pouvez exécuter votre application. Nous allons utiliser l'extension Chrome, Facteur , pour tester nos applications. L'étape suivante consiste à placer tous les employés dans POSTMAN. Pour cela, utilisez la ligne de code ci-dessous

|__+_|

Pour utiliser la ligne de code ci-dessus dans Tomcat Apache, utilisez la méthode HTTP GET. Voici votre première application de service Web prête.

Messages dans l'API de service Web RESTful

Dans l'API RESTful, le client et le serveur communiquent entre eux à l'aide du protocole HTTP. La communication se produit lorsque le client envoie une requête HTTP au serveur et que le serveur répond au client avec la réponse HTTP. La communication entre le client et le serveur à l'aide du protocole HTTP est appelée messagerie. Un seul message HTTP contient des données de message et des métadonnées. Les métadonnées sont des informations de message.

Examinons maintenant la requête HTTP et la réponse HTTP dans l'API de service Web RESTful.

Requête HTTP

Le client dirige une requête HTTP vers le serveur. Il demande les ressources au serveur. Il existe cinq parties principales incluses dans une requête HTTP, un verbe, un URI, une version HTTP, un en-tête de requête et un corps de requête. Ce qui suit est un format de requête HTTP.

Reposant

Décrivons brièvement chaque partie d'une requête HTTP.

    Verbe:Un verbe dans une requête HTTP implique les quatre méthodes HTTP, GET, POST, PUT et DELETE.Identifiant de ressource uniforme (URI) :La partie suivante d'une requête HTTP est un identificateur de requête uniforme (URI). Un URI identifie chaque ressource de manière unique.Version HTTP :La troisième partie d'une requête HTTP est une version HTTP. Par exemple, HTTP v1.1, où v1.1 est une version.En-tête de demande :L'en-tête de la demande contient les métadonnées du message. Les métadonnées de l'en-tête de demande sont présentes dans la paire clé-valeur. Il peut collecter des informations, telles que le type de client, les paramètres de cache, le format des messages, etc.Corps de la requête :Le corps de la requête dans une requête HTTP implique la représentation de la ressource.

Réponse HTTP

Lorsque le serveur obtient une requête HTTP du client, il répond au client avec une réponse HTTP. Une réponse HTTP comprend quatre parties importantes, le code de réponse, la version HTTP, l'en-tête de réponse et le corps de réponse. Vous trouverez ci-dessous un format de réponse HTTP.

image 617dd1cb36593

Discutons ici de chaque partie de la réponse HTTP.

    Code de réponse:

Le code de réponse est également appelé statut. Lorsque le client demande la ressource au serveur, le code de réponse affiche son état. Si le statut est 404, la ressource est introuvable. Si la réponse est ok, le statut est 200.

    Version HTTP :

La deuxième partie d'une réponse HTTP est une version HTTP. Par exemple, HTTP v1.1, où v1.1 est une version.

    En-tête de réponse :

L'en-tête contient les métadonnées du message de réponse HTTP sous la forme d'une paire clé-valeur. Il peut contenir des informations telles que le type de serveur, la longueur du contenu, les données de réponse, etc.

    Corps de la réponse :

Le corps de la réponse inclut la représentation de la ressource.

Dans l'exemple ci-dessus de l'API de service Web RESTful, nous avons mis http://localhost:8080/FirstRestExample/rest/EmployeeService/employees .

Dans le POSTMAN, en utilisant la méthode HTTP GET. Lorsque la demande est envoyée à l'aide de la méthode GET, nous recevons un message XML comme suit. Pour visualiser une réponse XML, vous devez cliquer sur le bouton Aperçu.

|__+_|

Ressource dans l'API de service Web RESTful

Dans l'API de service Web RESTful, chaque contenu est traité comme une ressource. Le client demande la ressource et le serveur fournit l'accès à une ressource particulière demandée par le client. Après avoir donné l'accès, le client peut modifier ou changer la ressource. La ressource peut être des pages HTML, des images, des fichiers texte ou des données commerciales.

Il existe un numéro unique pour chaque ressource dans l'architecture REST. Ce numéro unique est appelé URI (Uniform Resource Identifier). Généralement, la ressource dans l'architecture REST est représentée au format XML ou JSON. Voyons maintenant la représentation des ressources dans l'architecture REST.

Représentation des ressources dans l'architecture REST

Les ressources de l'architecture REST sont représentées aux formats XML ou JSON. Vous pouvez traiter une ressource REST comme une entité dans la base de données ou comme un objet dans la programmation orientée objet. Premièrement, la ressource est identifiée à l'aide de son URI (Uniform Resource Identifier). Plus tard, le format standard pour représenter la ressource est décidé. Lorsque le client demande la ressource, le serveur transmet la ressource sous la forme spécifiée par le client.

Dans notre exemple RESTful ci-dessus, nous avons un « employé » comme ressource. Voyons comment une ressource « employé » est représentée à l'aide d'un formulaire XML.

|__+_|

Maintenant, nous allons décrire la même ressource « employé » dans le formulaire JSON.

|__+_|

Dans l'architecture REST, vous pouvez représenter des ressources dans n'importe quel format. Il existe des cas dans l'API de service Web RESTful où un client demande la ressource dans un formulaire XML tandis que l'autre client demande la même ressource dans le formulaire JSON. La seule chose importante dans la représentation des ressources est qu'elle doit être représentée dans un format tel que le client puisse le comprendre.

Lorsque la ressource est représentée dans n'importe quel format, certaines conditions préalables doivent être prises en compte. Le format de la ressource doit être compréhensible, complet et lié. Le client et le serveur dans l'architecture REST doivent reconnaître rapidement le format de représentation des ressources. Quel que soit le formulaire que vous choisissez pour représenter la ressource, il doit fournir les informations complètes sur la ressource. Le format de représentation des ressources doit permettre le lien vers n'importe quelle autre ressource.

La plupart des développeurs utilisent le formulaire JSON ou XML pour représenter la ressource dans l'architecture REST. De nombreux outils sont aujourd'hui disponibles pour modifier les données JSON ou XML.

Adressage dans l'API de service Web RESTful

L'adressage dans l'architecture REST implique de localiser les ressources présentes sur le serveur. Nous savons que les ressources sont identifiées par leurs URI (Uniform Resource Identifiers). Le format d'un Uniform Resource Identifier est le suivant :

:////

L'URI localise une ressource particulière sur le serveur. Dans notre exemple ci-dessus, l'URI est

|__+_|

Nous avons utilisé la méthode HTTP GET pour l'URI ci-dessus.

Vous vous demandez peut-être comment l'URI est généré. Nous vous guiderons avec quelques règles simples dans la construction de l'URI pour n'importe quelle ressource dans l'architecture REST.

  1. Lorsque vous définissez des ressources dans vos services Web, utilisez toujours la forme plurielle. Dans l'exemple d'application Web RESTful ci-dessus, nous avons créé une ressource 'utilisateurs'.
  2. Vous devez vous assurer que le nom de votre ressource ne contient aucun espace ou symbole spécial, comme %, $, @, etc. Vous pouvez utiliser un trait d'union (-) ou un trait de soulignement (_) dans le nom de la ressource. Par exemple, le nom de ressource correct est effective_employees et non effective@employees.
  3. Dans le service Web RESTful, les URI ne sont pas sensibles à la casse. Mais, il est toujours préférable de conserver l'URI en minuscules.
  4. Assurez-vous que vous utilisez l'un des verbes ou méthodes HTTP pour effectuer des opérations sur les ressources. Dans l'application RESTful ci-dessus, nous avons utilisé la méthode HTTP GET.
  5. L'URI doit être publiée publiquement, car les services Web sont des services publics.

Examinons un exemple de bon et de mauvais URI pour récupérer un employé.

Mauvais URI

|__+_|

Bon URI

|__+_|

Java (JAX-RS) dans l'API de service Web RESTful

JAX-RS implique Jakarta RESTful Web Services. Auparavant, il était connu sous le nom d'API Java pour les services Web RESTful. JAX-RS est une API basée sur Java permettant aux utilisateurs de créer des services Web basés sur l'architecture REST. La dernière version de JAX-RS est la 2.0, publiée en 2013. Cette API basée sur Java utilise des annotations de Java SE 5, ce qui rend le développement et le déploiement de services Web plus faciles à gérer.

Spécifications JAX-RS

Voici quelques annotations généralement utilisées pour mapper une ressource en tant que ressource de service Web.

    @AVOIR:Cette spécification de JAX-RS est utilisée pour récupérer la ressource.@Chemin:@Path implique le chemin de la classe ou de la méthode incluse dans le service Web.@EFFACER:La ressource @DELETE supprime une ressource particulière.@PUBLIER:La spécification ci-dessus dans JAX-RS crée une nouvelle ressource.@METTRE:Cette spécification JAX-RS est utilisée pour mettre à jour une ressource existante.@ Consomme :La spécification @Consumes JAX-RS représente le type d'une requête HTTP.@DIRIGER:Une autre méthode HTTP dans JAX-RS est @HEAD, qui fournit des informations indiquant si la méthode est disponible ou non.@QueryParam :La spécification ci-dessus est utilisée pour combiner le paramètre de requête et le paramètre passé à la méthode.@Produit :La spécification @Produces affiche le type de la réponse HTTP.@PathParam :La spécification JAX-RS ci-dessus est utilisée pour combiner la valeur du chemin avec le paramètre passé à la méthode.@CookieParam :@CookieParam combine un Cookie avec le paramètre passé à la méthode.@MatrixParam :Cette spécification JAX-RS combine le paramètre de matrice HTTP avec un paramètre transmis à la méthode.@FormParam :La valeur du formulaire est combinée avec le paramètre passé à la méthode à l'aide de @FormParam.@HeaderParam :L'en-tête HTTP est lié au paramètre passé à la méthode à l'aide de @HeaderParam.@Le contexte:@Context implique un contexte de ressource.@Valeur par défaut:La spécification JAX-RS ci-dessus attribue au paramètre passé à la méthode une valeur par défaut.

Apatridie et mise en cache de l'API de service Web RESTful

Apatridie

L'apatridie implique que l'état du client ne doit pas être présent sur le serveur. Le client envoie son contexte au serveur. A la réception du contexte du client, le serveur stocke le contexte et l'utilise pour d'autres demandes du client. Par exemple, le client envoie l'identifiant de session au serveur. Par conséquent, le serveur le conserve pour identifier les sessions.

Avantages:

Vous trouverez ci-dessous quelques avantages significatifs de l'apatridie dans l'API de service Web RESTful.

  • À l'aide de la propriété d'absence d'état, le service Web traite chaque demande de méthode individuellement.
  • Le serveur ne conserve pas l'état du client ou les opérations précédentes. Par conséquent, cela simplifie la conception de l'application.
  • Les services Web RESTful traitent pratiquement sur les protocoles HTTP.

Les inconvénients:

  • Comme le serveur ne contient pas l'état du client, le service Web nécessite plus de données à chaque requête du client.

Mise en cache

Le client détient certaines ressources du serveur en termes de réponse. Par conséquent, le client n'a pas besoin de demander au serveur à plusieurs reprises la même ressource. C'est ce qu'on appelle la mise en cache. Sur la base des informations de mise en cache d'une ressource particulière offerte par le serveur, le client décide de mettre en cache la ressource pour le temps spécifique ou de ne jamais la mettre en cache.

Il existe un en-tête de contrôle de cache composé de cinq parties importantes, Public, Private, max-age, no-cache/no-store et must-revalidate. Voyons la description de chaque partie ci-dessous.

    Publique:Tout composant peut mettre en cache une ressource publique.Privé:Personne n'est autorisé à mettre en cache la ressource. Seuls le client et le serveur peuvent mettre en cache la ressource.max-âge :L'élément max-age est calculé en secondes. Cela implique combien de secondes la mise en cache de la ressource est valide. Une fois le temps max-age terminé, le client doit redemander la ressource.pas de cache/pas de magasin :Le client ne peut pas mettre en cache la ressource.doit-revalider :Le serveur doit revalider la ressource lorsque le temps maximal de mise en cache se termine.

Pour configurer le cache du client, la réponse du serveur implique les en-têtes suivants :

    Date:La date et l'heure de création de la ressource sont représentées dans l'en-tête Date.Cache-Control :L'en-tête cache-control surveille la mise en cache.Âge:L'âge est représenté en secondes. C'est l'heure à laquelle la ressource est reçue du serveur.Dernière modification :Cet en-tête affiche la date et l'heure auxquelles la ressource a été mise à jour pour la dernière fois.Expire :Cet en-tête implique la date et l'heure d'expiration de la mise en cache.

Méthodes HTTP et leurs opérations dans l'API RESTful

Dans la section précédente, nous avons vu les méthodes HTTP et leurs utilisations. Ce segment doit observer les méthodes HTTPS, leurs opérations et le type d'opération dans l'architecture REST.

    AVOIR:

La méthode GET HTTP dans l'exemple d'application RESTful ci-dessus est utilisée pour obtenir la liste des employés. Nous avons utilisé l'URI pour la méthode GET comme ci-dessous :

|__+_|

La méthode HTTP GET acquiert la liste des employés. Par conséquent, il a un type d'opération en lecture seule.

Nous pouvons également utiliser la méthode GET pour récupérer l'employé Id 1. L'URI pour récupérer l'employé Id 1 est,

|__+_|

Cette opération est également de type lecture seule.

    PUBLIER:

Dans notre exemple d'application RESTful, nous avons utilisé la méthode HTTP POST pour insérer l'employé ayant l'ID 2. L'URI pour insérer l'employé pour l'ID 2 est,

|__+_|

Le type d'opération ci-dessus n'est pas idempotent.

    EFFACER:

Nous pouvons utiliser la méthode HTTP DELETE pour supprimer l'employé avec l'ID 1. Vous trouverez ci-dessous l'URI pour supprimer l'employé avec l'ID 1.

|__+_|

L'opération DELETE est de type idempotent.

    DIRIGER:

La méthode HEAD dans une architecture REST est utilisée pour renvoyer l'en-tête HTTP. Il ne fournit pas le corps HTTP. Pour notre exemple d'employé ci-dessus, nous pouvons utiliser l'URI ci-dessous.

|__+_|

Cette opération est de type lecture seule.

    METTRE:

Dans l'application REST Employee ci-dessus, nous pouvons utiliser la méthode HTTP PUT pour mettre à jour l'employé avec l'ID 2. Utilisez l'URI ci-dessous pour mettre à jour l'employé avec l'ID 2.

|__+_|
    OPTIONS :

Les méthodes HTTP OPTIONS permettent de lister toutes les opérations supportées dans le service web. Vous pouvez utiliser l'URI suivant pour cette opération.

|__+_|

L'opération OPTIONS est d'un type en lecture seule.

À partir des méthodes HTTP ci-dessus et de leurs opérations, nous pouvons conclure que l'opération GET est un type en lecture seule. Les opérations DELETE et PUT sont de type idempotent. Le résultat de ces deux opérations reste le même, même si elles sont effectuées plusieurs fois.

Conclusion

L'API RESTful est une API basée sur l'architecture REST qui utilise les méthodes HTTP pour accéder aux données et les organiser. Chaque donnée de l'architecture REST est considérée comme une ressource. Si vous souhaitez apprendre l'API RESTful, cet article est un guide complet pour vous.

Nous avons vu ce qu'est l'API de service Web RESTful, comment ça marche, les méthodes HTTP utilisées dans l'architecture REST, et les propriétés et contraintes de l'architecture REST. Plus tard, nous avons décrit la configuration de l'environnement pour l'API RESTful. Dans la configuration de l'environnement API RESTful, nous avons configuré l'environnement JDK, Tomcat Apache, Eclipse IDE et Jersey Framework. Vous pouvez observer l'exemple d'application RESTful simple dans ce didacticiel.

Ensuite, nous avons couvert plusieurs éléments de l'API de service Web RESTful, tels que les messages, l'apatridie, la mise en cache, les ressources et l'adressage. Nous avons également discuté de la Java JAX-RS et ses spécifications. Enfin, nous avons vu les méthodes HTTP et leurs opérations avec URI et type d'opération.