Tutoriel sur les services Web RESTful : Exemple d’API REST
⚡ Résumé intelligent
Les services Web RESTful offrent une approche légère et sans état permettant aux applications d'échanger des données via HTTP à l'aide de verbes standard. Ils exposent les ressources de manière claire. URLs, permettant une communication évolutive et indépendante de la plateforme entre clients distribués, serveurs, appareils mobiles et plateformes cloud et d'IA modernes.
Qu'est-ce que les services Web reposants ?
Services Web reposants REST est un service léger, facile à maintenir et évolutif, basé sur l'architecture REST. Un service web RESTful expose une API de votre application de manière sécurisée, uniforme et sans état au client appelant. Ce dernier peut ensuite effectuer des opérations prédéfinies via le service RESTful. Le protocole sous-jacent de REST est HTTP, et REST signifie REpresentational State Transfer (Transfert d'état représentationnel).
En termes simples, REST définit une méthode standard pour la création, la lecture, la mise à jour et la suppression de ressources (documents, images, enregistrements de bases de données, etc.) sur le web. S'appuyant sur le protocole HTTP standard, un service RESTful est accessible via presque tous les langages de programmation et appareils, sans outil spécifique.
Pourquoi utiliser les services Web RESTful ?
Avant d'aborder les détails techniques, il est utile de comprendre pourquoi REST a connu un tel succès. Les services Web RESTful ont acquis une telle importance pour les raisons suivantes :
1. Langues et environnements hétérogènes – C’est l’une des raisons fondamentales, qui est la même que celle que nous avons vue pour SOAP également.
- Il permet aux applications web construites sur différents langages de programmation de communiquer entre elles.
- Grâce aux services RESTful, ces applications web peuvent résider dans différents environnements ; certaines pourraient être sur Windows, et d'autres pourraient être sous Linux.
Au final, quel que soit l'environnement, le résultat doit toujours être le même : les applications doivent pouvoir communiquer entre elles. Les services web RESTful offrent cette flexibilité aux applications développées sur différentes plateformes et avec divers langages de programmation.
L'image ci-dessous donne un exemple d'application web qui doit communiquer avec d'autres applications telles que Facebook, Twitter, et Google.
Si une application cliente devait interagir avec des sites comme Facebook et Twitter, les développeurs devraient généralement connaître le langage et la plateforme utilisés par ces sites. Sur cette base, ils pourraient écrire le code d'interface, mais cette approche pourrait s'avérer extrêmement difficile à maintenir.
Au lieu de cela, Facebook, Twitter et Google Ils exposent leurs fonctionnalités sous forme de services web RESTful. Cela permet à toute application cliente d'appeler ces services web via REST, quelle que soit la technologie sous-jacente.
2. L'événement des Appareils – Aujourd’hui, tout est à refaire Mobile appareils, qu'il s'agisse d'un téléphone portable, d'un ordinateur portable ou même d'un système audio embarqué dans une voiture.
Imaginez l'effort considérable que représente le développement d'applications sur ces appareils pour communiquer avec des applications web classiques. Là encore, les API RESTful simplifient grandement cette tâche car, comme indiqué précédemment, il n'est pas nécessaire de connaître la couche sous-jacente de l'appareil.
3. L'événement du nuage – Tout migre vers le cloud. Les applications migrent progressivement vers des systèmes basés sur le cloud tels que Azure or Amazon. Azure et Amazon De nombreuses API basées sur l'architecture RESTful sont désormais disponibles. Par conséquent, les applications doivent être développées de manière à être compatibles avec le cloud. Puisque toutes les architectures cloud reposent sur le principe REST, il est logique de programmer les services web selon une architecture REST afin d'optimiser l'utilisation des services cloud.
Éléments clés RESTful
Les services web REST ont considérablement évolué depuis leur création. En 2002, le Web Consortium a publié la définition des services web WSDL et SOAP, établissant ainsi la norme d'implémentation de ces services.
En 2004, le consortium Web a également publié la définition d'une norme supplémentaire appelée RESTful. Au cours des dernières années, cette norme a gagné en popularité et est désormais utilisée par de nombreux sites web parmi les plus fréquentés au monde, dont Facebook et Twitter.
REST est un protocole permettant d'accéder à des ressources situées dans un environnement spécifique. Par exemple, un serveur peut héberger des documents importants, des images ou des vidéos. Ce sont là des exemples de ressources. Si un client, tel qu'un navigateur web, a besoin de l'une de ces ressources, il doit envoyer une requête au serveur. Les services REST définissent une méthode standard d'accès à ces ressources.
Les éléments clés d'une implémentation RESTful sont les suivants :
- Ressources Le premier élément clé est la ressource elle-même. Supposons qu'une application web hébergée sur un serveur contienne les enregistrements de plusieurs employés. URL de l'application web est https://demo.guru99.comPour accéder à la ressource d'enregistrement d'un employé via les services REST, il est possible d'exécuter la commande suivante : https://demo.guru99.com/employee/1Cette commande indique au serveur web de fournir les informations relatives à l'employé dont le numéro d'employé est le 1.
- Demander des verbes Ces instructions décrivent l'action que vous souhaitez effectuer sur la ressource. Un navigateur utilise la méthode GET pour indiquer au point de terminaison qu'il souhaite obtenir des données. Cependant, de nombreuses autres méthodes sont disponibles, notamment POST, PUT et DELETE. Ainsi, dans le cas de l'exemple https://demo.guru99.com/employee/1En réalité, le navigateur Web effectue une requête GET car il souhaite obtenir les détails du dossier de l'employé.
- En-têtes de demande – Ce sont des instructions supplémentaires jointes à la demande. Elles peuvent préciser le type de réponse attendu ou les détails de l'autorisation.
- Corps de la demande Il s'agit des données envoyées avec la requête. Ces données sont généralement transmises dans le corps de la requête lors d'une requête POST adressée à un service web REST. Lors d'un appel POST, le client indique au service web REST qu'il souhaite ajouter une ressource au serveur. Le corps de la requête contient donc les détails de la ressource à ajouter.
- Corps de réponse – Voici le corps principal de la réponse. Ainsi, dans notre exemple d'API RESTful, si nous interrogeons le serveur web via la requête https://demo.guru99.com/employee/1Le serveur web peut renvoyer un document XML contenant toutes les informations relatives à l'employé dans le corps de la réponse.
- Codes d'état de réponse Il s'agit des codes généraux renvoyés avec la réponse du serveur web. Par exemple, le code 200 est généralement renvoyé lorsqu'aucune erreur ne survient lors de la réponse au client.
Méthodes reposantes
Le diagramme ci-dessous présente la plupart des verbes (POST, GET, PUT et DELETE) et un exemple d'API REST illustrant leur signification.
Supposons que nous ayons un service Web RESTful défini à l'emplacement https://demo.guru99.com/employeeLorsqu'un client effectue une requête auprès de ce service web, il peut spécifier l'un des verbes HTTP classiques : GET, POST, DELETE ou PUT. Voici ce qui se produirait si le client envoyait ces verbes.
- POSTEZ – Ceci servirait à créer un nouvel employé via le service web RESTful.
- ÉCONOMISEZ – Ceci permettrait d'obtenir la liste de tous les employés utilisant le service web RESTful.
- PUT – Ceci servirait à informer tous les employés via le service web RESTful.
- EFFACER – Ceci servirait à supprimer tous les employés utilisant le service RESTful.
Examinons maintenant la situation du point de vue d'un seul enregistrement. Supposons qu'il existe un enregistrement d'employé portant le numéro 1. Les actions suivantes auraient alors leur signification respective.
- POSTEZ – Cela ne serait pas applicable, puisque nous récupérons les données de l'employé 1, qui est déjà créé.
- ÉCONOMISEZ – Ceci permettrait d'obtenir les informations concernant l'employé portant le numéro 1 via le service web RESTful.
- PUT – Ceci servirait à mettre à jour les informations de l'employé numéro 1 via le service web RESTful.
- EFFACER – Ceci permet de supprimer les informations de l'employé portant le numéro 1.
Reposant Architecture
Une application ou une architecture considérée comme RESTful ou de style REST possède les caractéristiques suivantes.
1. L'état et les fonctionnalités sont divisés en ressources distribuées Cela signifie que chaque ressource doit être accessible via les commandes HTTP classiques : GET, POST, PUT et DELETE. Ainsi, pour récupérer un fichier depuis un serveur, il suffit d'effectuer une requête GET. Pour déposer un fichier sur le serveur, il faut utiliser une requête POST ou PUT. Enfin, pour supprimer un fichier du serveur, il faut utiliser une requête DELETE.
2. L'architecture est de type client/serveur, sans état, en couches et prend en charge la mise en cache.
- Client-serveur est l'architecture typique dans laquelle le serveur peut être le serveur Web hébergeant l'application, et le client peut être aussi simple qu'un navigateur Web.
- Apatride signifie que l’état de l’application n’est pas conservé dans REST. Par exemple, si vous supprimez une ressource d'un serveur à l'aide de la commande DELETE, vous ne pouvez pas vous attendre à ce que ces informations de suppression soient transmises à la requête suivante.
Pour s'assurer que la ressource est bien supprimée, il faut effectuer une requête GET. Cette requête permet d'abord de récupérer toutes les ressources présentes sur le serveur, puis de vérifier si la ressource a effectivement été supprimée.
Principes et contraintes RESTFul
L'architecture REST repose sur quelques caractéristiques, détaillées ci-dessous. Tout service web RESTful doit respecter ces caractéristiques pour être qualifié de RESTful. Ces caractéristiques sont également appelées principes de conception et doivent être suivies lors de l'utilisation de services RESTful.
Il s'agit de l'exigence fondamentale d'une architecture REST. Cela signifie que le serveur propose un service web RESTful fournissant les fonctionnalités requises au client. Le client envoie une requête au service web sur le serveur. Le serveur rejette alors la requête ou y répond en fournissant une réponse appropriée au client.
- Apatride
Le concept d'absence d'état signifie qu'il incombe au client de fournir au serveur toutes les informations nécessaires. Ceci est indispensable pour que le serveur puisse traiter la réponse correctement. Le serveur ne doit conserver aucune information entre les requêtes du client. Il s'agit d'une séquence question-réponse très simple et indépendante. Le client pose une question et le serveur y répond de manière appropriée. Lorsque le client pose une autre question, le serveur ne conserve aucune trace de la précédente et doit répondre à la nouvelle question indépendamment.
- Cache
Le concept de cache permet de résoudre le problème d'absence d'état décrit précédemment. Chaque requête client-serveur étant indépendante, il arrive que le client soumette à nouveau la même requête, même s'il l'a déjà effectuée. Cette requête est envoyée au serveur, qui répond, ce qui augmente le trafic réseau. Le cache est un mécanisme implémenté côté client pour stocker les requêtes déjà envoyées au serveur. Ainsi, si le client soumet une nouvelle requête, au lieu d'interroger le serveur, il accède au cache pour obtenir les informations nécessaires. Cela réduit considérablement le trafic réseau aller-retour entre le client et le serveur.
- Système en couches
Le concept d'un système en couches repose sur la possibilité d'insérer une couche supplémentaire, telle qu'une couche intermédiaire, entre le client et le serveur hébergeant le service web RESTful. (La couche intermédiaire implémente la logique métier. Il peut s'agir d'un service externe avec lequel le client interagit avant d'appeler le service web.) L'insertion de cette couche doit toutefois être transparente afin de ne pas perturber l'interaction entre le client et le serveur.
- Interface/Uniform Contract
Voici le principe de fonctionnement des services web RESTful. RESTful opère au niveau de la couche HTTP et utilise les verbes clés ci-dessous pour interagir avec les ressources du serveur.
- POST – Pour créer une ressource sur le serveur.
- GET – Pour récupérer une ressource depuis le serveur.
- PUT – Pour modifier l'état d'une ressource ou pour la mettre à jour.
- SUPPRIMER – Pour supprimer une ressource du serveur.
REST vs SOAP : Principales différences
Lors de la conception d'un service web, les développeurs comparent souvent REST et SOAP. Bien que les deux permettent la communication entre applications distribuées, leur philosophie diffère fondamentalement. REST est un style architectural qui utilise des verbes HTTP simples et des formats légers comme JSON, tandis que SOAP… SOAP est un protocole strict qui repose sur des enveloppes XML et une convention formelletract. Le tableau ci-dessous résume les distinctions les plus importantes.
| Aspect | REST | SOAP |
|---|---|---|
| Type | Archistyle textile | Protocole strict |
| Format de données | JSON, XML, texte brut, HTML | XML uniquement |
| Transports | HTTP uniquement | HTTP, SMTP, TCP et autres |
| État | Apatride | apatride ou avec État |
| Performances | Plus rapide et plus léger | Plus lourd en raison de la surcharge XML |
| Meilleur pour | API Web, mobiles et publiques | Applications d'entreprise nécessitant une sécurité stricte |
En pratique, REST est le choix par défaut pour les API web et mobiles publiques car il est plus rapide et plus facile à utiliser, tandis que SOAP reste utile pour les systèmes d'entreprise qui exigent une sécurité intégrée et des protocoles formels.tracts.
Créez votre premier service Web Restful dans ASP.NET
Dans ce tutoriel sur les API REST, nous allons apprendre à créer un service web RESTful en ASP.NET.
Les services Web peuvent être créés dans divers langages, et de nombreux environnements de développement intégrés peuvent être utilisés pour créer des services basés sur REST.
Dans cet exemple d'API RESTful, nous allons créer notre application REST en .NET à l'aide de Visual Studio. Nous aurons un service web RESTful qui traitera l'ensemble de données ci-dessous.
L'ensemble de données ci-dessous représente un exemple d'API REST d'une entreprise qui expose les tutoriels dont elle dispose en fonction de l'identifiant du tutoriel (Tutorialid).
| Tutoriel | Nom du didacticiel |
|---|---|
| 0 | Arrays |
| 1 | Queues |
| 2 | Combos |
Dans notre exemple de tutoriel sur l'API REST, nous allons implémenter les verbes Restful ci-dessous.
- OBTENIR Tutoriel – Lorsqu'un client invoque cette API RESTful, il recevra l'ensemble des tutoriels disponibles sur le service web.
- GET Tutoriel/Tutorialide – Lorsqu'un client invoque cette API RESTful, le nom du tutoriel lui sera attribué en fonction de l'identifiant du tutoriel (Tutorialid) envoyé par le client.
- Tutoriel POST/Nom du didacticiel Lorsqu'un client appelle cette API RESTful, il soumet une requête pour insérer un nom de tutoriel. Le service web ajoute ensuite ce nom à la collection.
- DELETE Tutoriel/Tutorialid Lorsqu'un client appelle cette API RESTful, il soumet une requête de suppression d'un nom de tutoriel à partir de son identifiant. Le service web supprime alors le tutoriel concerné de la collection.
Suivons les étapes ci-dessous pour créer notre premier service web RESTful, qui met en œuvre l'implémentation décrite ci-dessus.
Comment créer votre premier service Web reposant
Étape 1) Créez un nouveau projet.
La première étape consiste à créer un vide Asp.Net Application web. Dans Visual Studio 2013, cliquez sur l'option de menu Fichier -> Nouveau projet.
Une fois que vous aurez cliqué sur l'option Nouveau projet, Visual Studio affichera une autre boîte de dialogue vous permettant de choisir le type de projet et de saisir les informations nécessaires. Ceci est expliqué dans l'étape suivante.
Étape 2) Saisissez le nom et l'emplacement du projet.
- Assurez-vous de choisir d'abord le C# Modèle web d'une application web ASP.NET. Ce type de projet est requis pour créer un projet de services web. En choisissant cette option, Visual Studio effectuera les étapes nécessaires pour ajouter les fichiers requis pour toute application web.
- Donnez un nom à votre projet, qui dans notre cas est « Webservice.REST ».
- Ensuite, indiquez l'emplacement où seront stockés les fichiers du projet.
Une fois l'opération terminée, vous verrez le fichier projet créé dans l'explorateur de solutions de Visual Studio 2013.
Étape 3) Créez le fichier du service Web.
L'étape suivante consiste à créer le fichier de service web qui hébergera le service web RESTful.
- Tout d'abord, cliquez avec le bouton droit sur le fichier de projet comme indiqué ci-dessous.
- Dans cette étape,
- Faites un clic droit sur le fichier projet.
- Choisissez l’option « Ajouter -> Nouvel élément ».
Dans la boîte de dialogue qui apparaît, vous devez effectuer les opérations suivantes.
- Choisissez l'option Service WCF (compatible Ajax). Le choix d'un fichier de ce type permet à Visual Studio d'ajouter du code de base pour vous aider à créer un service web RESTful. WCF signifie Windows Communication FoundationWCF est une bibliothèque permettant aux applications de différentes plateformes (ou d'une même plateforme) de communiquer via différents protocoles tels que TCP, HTTP et HTTPS. Ajax est asynchrone. Javascénario et XML. AJAX permet aux pages Web d'être mises à jour de manière asynchrone en échangeant de petites quantités de données avec le serveur en coulisse.
- Ensuite, donnez un nom au service, qui est TutorialService dans notre cas.
- Enfin, cliquez sur le bouton Ajouter pour ajouter le service à la solution.
Étape 4) Faites une configuration.
L'étape suivante consiste à modifier la configuration pour permettre à ce projet de fonctionner avec les services web RESTful. Cela nécessite une modification du fichier appelé Web.configCe fichier apparaît dans la même fenêtre que le fichier de projet du service Web. Le fichier Web.config contient tous les paramètres nécessaires au bon fonctionnement de l'application Web. La modification apportée permet à l'application d'envoyer et de recevoir des données comme un service Web RESTful pur.
- Cliquez sur le fichier Web.config pour ouvrir le code.
- Trouvez la ligne .
- Changez la ligne en .
Étape 5) Ajoutez notre code pour l'implémentation.
L'étape suivante consiste à ajouter notre code d'implémentation. Tout le code ci-dessous doit être écrit dans le fichier TutorialService.svc.
- La première étape consiste à ajouter le code représentant nos données, qui seront utilisées dans notre programme. Nous aurons donc une liste de variables de type chaîne de caractères avec les valeurs « Arrays », « Queues » et « Stacks ». Cela représentera les noms des tutoriels disponibles via notre service d'hébergement web.
namespace Webservice.REST { [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class TutorialService { private static List<String> lst = new List<String> (new String[] {"Arrays","Queues","Stacks"});
Étape 6) Définissez le code de notre méthode GET.
Ensuite, nous définirons le code de notre méthode GET. Ce code se trouvera également dans le fichier TutorialService.svc. Il s'exécutera chaque fois que nous appellerons le service depuis notre navigateur.
La méthode ci-dessous sera utilisée pour réaliser le scénario suivant.
- Si un utilisateur souhaite obtenir la liste de tous les tutoriels disponibles, il devra écrire le code ci-dessous pour y parvenir.
[WebGet(UriTemplate = "/Tutorial")] public String GetAllTutorial() { int count = lst.Count; String TutorialList = ""; for (int i = 0; i < count; i++) TutorialList = TutorialList + lst[i] + ","; return TutorialList; }
Code Explication:-
- La première ligne de code est la plus importante. Elle sert à définir comment appeler cette méthode via une URLDonc, si le lien vers notre service web est http://localhost:52645/TutorialService.svc et nous ajoutons '/Tutorial' au URL, Comme dans http://localhost:52645/TutorialService.svc/TutorialLe code ci-dessus sera alors exécuté. L'attribut « WebGet » est un paramètre qui permet à cette méthode d'être une méthode RESTful, afin qu'elle puisse être appelée via la méthode GET.
- Cette section de code est utilisée pour parcourir notre liste de chaînes dans la variable 'lst' et les renvoyer toutes au programme appelant.
Étape 7) Renvoie la sortie.
Le code ci-dessous garantit que si un appel GET est effectué au service Tutorial avec un identifiant de tutoriel, il renverra le nom du tutoriel correspondant en fonction de cet identifiant.
[WebGet(UriTemplate = "/Tutorial/{Tutorialid}")] public String GetTutorialbyID(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); return lst[pid]; }
Code Explication:-
- La première ligne de code est la plus importante. Elle définit comment nous pouvons appeler cette méthode via un URLDonc, si le lien vers notre service web est http://localhost:52645/TutorialService.svc et nous ajoutons '/Tutorial/{Tutorialid}' au URL, nous pourrions appeler le service web comme http://localhost:52645/TutorialService.svc/Tutorial/1Par exemple, le service web renverrait alors le nom du tutoriel dont l'identifiant est 1.
- Cette section de code est utilisée pour renvoyer le nom du tutoriel dont l'identifiant a été transmis à la méthode web.
- Par défaut, il faut se rappeler que tout ce qui est transmis à URL Dans le navigateur, il s'agit d'une chaîne de caractères.
- Mais n'oubliez pas que l'index de notre liste doit être un entier, nous ajoutons donc le code nécessaire pour convertir d'abord le Tutorialid en entier.
- Nous l'utilisons ensuite pour accéder à la position de l'index dans notre liste et renvoyer la valeur au programme appelant en conséquence.
Étape 8) Écrivez le code pour la méthode POST.
L'étape suivante consiste à écrire le code de notre méthode POST. Cette méthode sera appelée chaque fois que nous voudrons ajouter une chaîne de caractères à notre liste de tutoriels via la méthode POST. Par exemple, si vous souhaitez ajouter le tutoriel intitulé « Tests logiciels », vous devrez utiliser la méthode POST.
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/Tutorial/{str}")] public void AddTutorial(String str) { lst.Add(str); }
Code Explication:-
- La première ligne correspond à l'attribut « WebInvoke », associé à notre méthode. Cela permet d'appeler la méthode via une requête POST. Les attributs RequestFormat et ResponseFormat doivent être définis comme JSON, car les valeurs envoyées à un service web RESTful doivent respecter ce format.
- La deuxième ligne de code sert à ajouter la valeur de chaîne transmise via l'appel POST à notre liste existante de chaînes de tutoriels.
Étape 9) Ajoutez une méthode pour gérer l'opération DELETE.
Enfin, nous allons ajouter notre méthode pour gérer l'opération DELETE. Cette méthode sera appelée chaque fois que nous voudrons supprimer une valeur de type chaîne de caractères de notre liste de tutoriels via la méthode DELETE.
[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json, UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)] public void DeleteTutorial(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); lst.RemoveAt(pid); }
Code Explication:-
- La première ligne correspond à l'attribut « WebInvoke », associé à notre méthode. Cela permet d'appeler la méthode via la commande DELETE. Les attributs RequestFormat et ResponseFormat doivent être spécifiés comme JSON, car les valeurs doivent respecter ce format. Notez que le paramètre Method est défini sur « DELETE ». Ainsi, chaque fois que nous utiliserons la commande DELETE, cette méthode sera appelée.
- La deuxième ligne de code est utilisée pour prendre le Tutorialid envoyé via l'appel DELETE et ensuite supprimer cet identifiant de notre liste. (Le Int32 La fonction du code est utilisée pour convertir l'identifiant du tutoriel d'une variable de type chaîne en un entier.
Exécuter votre premier service Web Restful
Maintenant que nous avons créé l'intégralité de notre service web dans la section précédente, voyons comment exécuter le service Tutoriel afin qu'il puisse être appelé depuis n'importe quel client.
Pour exécuter le service Web, veuillez suivre les étapes ci-dessous.
Étape 1) Faites un clic droit sur le fichier projet – Webservice.REST.
Étape 2) Sélectionnez l'option de menu « Définir comme projet de démarrage ». Cela garantira que ce projet sera exécuté lorsque Visual Studio lancera la solution complète.
Étape 3) L'étape suivante consiste à exécuter le projet. Selon le navigateur par défaut installé sur le système, son nom apparaîtra à côté du bouton Exécuter dans Visual Studio. Dans notre cas, nous avons Google Chrome apparaît. Cliquez simplement sur ce bouton.
Production:-
Une fois le projet exécuté, vous pouvez accéder à la section TutorialService.svc/Tutorial et vous obtiendrez le résultat ci-dessous.
Dans le résultat ci-dessus,
- Vous pouvez constater que le navigateur utilise la méthode « GET » et exécute la méthode « GetAllTutorial » du service web. Ce module permet d'afficher tous les tutoriels accessibles via notre service web.
Tester votre premier service Web Restful
Dans la section précédente, nous avons déjà vu comment utiliser le navigateur pour exécuter la commande « GET » et invoquer « GetAllTutorial ».
- Utilisons maintenant le navigateur pour exécuter le scénario de cas d'utilisation suivant.
GET Tutorial/Tutorialid – Lorsqu'un client invoque cette API RESTful, le nom du tutoriel lui sera attribué en fonction de l'identifiant du tutoriel (Tutorialid) envoyé par le client.
Dans votre navigateur, ajoutez la chaîne /1 après le mot Tutorial dans le URLSi vous appuyez sur la touche Entrée, vous obtiendrez le résultat ci-dessous.
Vous verrez alors apparaître la valeur « Queues », qui correspond au numéro 1 dans notre liste de chaînes de tutoriels. Cela signifie que la méthode « GetTutorialbyID » est bien appelée par notre service web. Cela indique également que la valeur 1 est correctement transmise par le navigateur à notre service web et à notre méthode, ce qui explique pourquoi nous obtenons la valeur correspondante de « Queues » dans le navigateur.
- Ensuite, utilisons notre service web en exécutant le scénario ci-dessous. Pour cela, vous devez installer l'outil appelé Fiddler, qui est un outil téléchargeable gratuitement.
Requête POST Tutorial/Tutorialname – Lorsqu'un client appelle cette API RESTful, il soumet une requête pour insérer un nom de tutoriel. Le service web ajoute ensuite ce nom à la collection.
Exécutez le Fiddler Utilisez l'outil et suivez les étapes ci-dessous.
- Accédez à la section du compositeur. Celle-ci sert à créer des requêtes pouvant être soumises à n'importe quelle application web.
- Assurez-vous que le type de requête est « POST » et que le bon URL est touché, ce qui dans notre cas devrait être http://localhost:52645/TutorialService.svc/Tutorial.
- Assurez-vous que l'en-tête Content-Type est défini sur application/json. N'oubliez pas que notre méthode de requête POST dans notre service web n'accepte que les données au format JSON ; il est donc impératif de le préciser lors de l'envoi d'une requête à notre application.
- Enfin, nous devons saisir nos données. N'oubliez pas que notre méthode POST accepte un paramètre nommé « str ». Nous indiquons donc ici que nous souhaitons ajouter une valeur appelée « Trees » à notre collection de noms de tutoriels et nous nous assurons qu'elle soit associée à la variable « str ».
Enfin, cliquez simplement sur le bouton Exécuter dans FiddlerCela enverra une requête au service web pour transmettre les données « Trees » à notre service web.
Maintenant, lorsque nous accédons au tutoriel URL Pour afficher toutes les chaînes de caractères de notre liste de tutoriels, vous constaterez que la valeur « Trees » y figure également. Cela indique que la requête POST envoyée au service web a été exécutée avec succès et que la chaîne a bien été ajoutée à notre liste de tutoriels.
- Ensuite, utilisons notre service web en exécutant le scénario ci-dessous. Pour cela, nous devons également utiliser… Fiddler outil.
SUPPRESSION Tutorial/Tutorialid – Lorsqu'un client appelle cette API RESTful, il soumet une requête de suppression d'un tutoriel (Tutorialname) à partir de son identifiant (Tutorialid). Le service web supprime alors le tutoriel concerné de la collection.
Exécutez le Fiddler Utilisez l'outil et suivez les étapes ci-dessous.
- Accédez à la section du compositeur. Celle-ci sert à créer des requêtes pouvant être soumises à n'importe quelle application web.
- Assurez-vous que le type de requête est « SUPPRESSION » et que le champ correct est sélectionné. URL est touché, ce qui dans notre cas devrait être http://localhost:52645/TutorialService.svc/Tutorial. Assurez-vous que l'identifiant utilisé pour supprimer une chaîne de caractères dans la liste est envoyé via le URL en tant que paramètre. Dans notre exemple REST, nous envoyons 1, ce qui supprimera le 2.nd un élément de notre collection, qui est « Files d'attente ».
Enfin, cliquez simplement sur le bouton Exécuter dans FiddlerCela enverra une requête au service web pour SUPPRIMER les données « Queues » de notre service web.
Maintenant, lorsque nous accédons au tutoriel URL Pour afficher toutes les chaînes de caractères de notre liste de tutoriel, vous remarquerez que la valeur de « Queues » n'est plus présente.
Cela indique que la requête DELETE adressée au service web a été exécutée avec succès. L'élément situé à l'index 1 dans notre liste de chaînes de caractères du tutoriel a été supprimé avec succès.
Meilleures pratiques de l'API RESTful
Créer une API REST fonctionnelle n'est que la première étape ; en concevoir une évolutive et maintenable exige de la rigueur. Les bonnes pratiques ci-dessous permettent de garantir que vos points de terminaison sont prévisibles, sécurisés et faciles à utiliser pour les autres développeurs et les agents d'IA.
- Utilisez des noms, pas des verbes, dans URLs. Des points de terminaison tels que /employés/1 sont plus clairs que /getEmployee?id=1, car le verbe HTTP décrit déjà l'action.
- Renvoyer des codes d'état significatifs. Envoyer 200 en cas de succès, 201 pour une ressource créée, 400 pour une mauvaise requête, 401 pour un accès non autorisé, 404 pour une ressource manquante et 500 pour les erreurs du serveur.
- Versionnez votre API. Ajouter un segment de version tel que /v1/ Cette approche vous permet de faire évoluer le service sans impacter les clients existants.
- Sécurisez chaque point de terminaison. Utilisez HTTPS, ainsi que des clés API ou des jetons OAuth 2.0, et validez toutes les données entrantes.
- Prise en charge de la pagination et du filtrage. Le fait de renvoyer les collections volumineuses par pages permet d'obtenir des réponses rapides et de réduire la charge du serveur.
Le respect de ces conventions rend votre service web RESTful intuitif à intégrer, que le consommateur soit une application mobile, un système partenaire ou un flux de travail d'IA automatisé.




























