Tutoriel sur les services Web RESTful : Qu'est-ce que l'API REST avec exemple

Qu'est-ce que les services Web reposants ?

Services Web reposants est un service lรฉger, maintenable et รฉvolutif basรฉ sur l'architecture REST. Restful Web Service, exposez l'API de votre application de maniรจre sรฉcurisรฉe, uniforme et sans รฉtat au client appelant. Le client appelant peut effectuer des opรฉrations prรฉdรฉfinies ร  l'aide du service Restful. Le protocole sous-jacent de REST est HTTP. REST signifie REpresentational State Transfer.

ร‰lรฉments clรฉs RESTful

Les services Web REST ont vraiment parcouru un long chemin depuis leur crรฉation. En 2002, le consortium Web avait publiรฉ la dรฉfinition des services Web WSDL et SOAP. Cela constitue la norme de mise en ล“uvre des services Web.

En 2004, le consortium Web a รฉgalement publiรฉ la dรฉfinition d'un standard supplรฉmentaire appelรฉ RESTful. Au cours des derniรจres annรฉes, cette norme est devenue trรจs populaire. Et il est utilisรฉ par de nombreux sites Web populaires ร  travers le monde, notamment Facebook et Twitter.

REST est un moyen d'accรฉder aux ressources qui se trouvent dans un environnement particulier. Par exemple, vous pourriez avoir un serveur qui pourrait hรฉberger des documents, des images ou des vidรฉos importants. Tout cela est un exemple de ressources. Si un client, par exemple un navigateur Web, a besoin de l'une de ces ressources, il doit envoyer une requรชte au serveur pour accรฉder ร  ces ressources. Dรฉsormais, les services REST dรฉfinissent un moyen d'accรฉder ร  ces ressources.

Les รฉlรฉments clรฉs d'une implรฉmentation RESTful sont les suivants :

  1. Ressources โ€“ Le premier รฉlรฉment clรฉ est la ressource elle-mรชme. Supposons qu'une application Web sur un serveur possรจde les enregistrements de plusieurs employรฉs. Supposons que l'URL de l'application Web soit https://demo.guru99.com. Dรฉsormais, pour accรฉder ร  une ressource d'enregistrement d'employรฉ via les services REST, on peut รฉmettre la commande https://demo.guru99.com/employee/1 โ€“ Cette commande indique au serveur Web de fournir les dรฉtails de lโ€™employรฉ dont le numรฉro dโ€™employรฉ est 1.
  2. Demander des verbes โ€“ Ceux-ci dรฉcrivent ce que vous souhaitez faire avec la ressource. Un navigateur รฉmet un verbe GET pour indiquer au point de terminaison qu'il souhaite obtenir des donnรฉes. Cependant, il existe de nombreux autres verbes disponibles, notamment POST, PUT et DELETE. Donc dans le cas de l'exemple https://demo.guru99.com/employee/1 , le navigateur Web รฉmet en fait un verbe GET car il souhaite obtenir les dรฉtails du dossier de l'employรฉ.
  3. En-tรชtes de demande โ€“ Il sโ€™agit dโ€™instructions supplรฉmentaires envoyรฉes avec la demande. Ceux-ci peuvent dรฉfinir le type de rรฉponse requis ou les dรฉtails de l'autorisation.
  4. Corps de la demande โ€“ Les donnรฉes sont envoyรฉes avec la demande. Les donnรฉes sont normalement envoyรฉes dans la requรชte lorsqu'une requรชte POST est adressรฉe aux services Web REST. Lors d'un appel POST, le client indique en fait aux services Web REST qu'il souhaite ajouter une ressource au serveur. Par consรฉquent, le corps de la demande contiendrait les dรฉtails de la ressource qui doit รชtre ajoutรฉe au serveur.
  5. Corps de rรฉponse โ€“ Cโ€™est lโ€™essentiel de la rรฉponse. Ainsi, dans notre exemple d'API RESTful, si nous devions interroger le serveur Web via la requรชte https://demo.guru99.com/employee/1 , le serveur Web peut renvoyer un document XML avec tous les dรฉtails de l'employรฉ dans le corps de rรฉponse.
  6. Codes d'รฉtat de rรฉponse โ€“ Ces codes sont les codes gรฉnรฉraux qui sont renvoyรฉs avec la rรฉponse du serveur Web. Un exemple est le code 200 qui est normalement renvoyรฉ s'il n'y a pas d'erreur lors du renvoi d'une rรฉponse au client.

Mรฉthodes reposantes

Le diagramme ci-dessous montre principalement tous les verbes (POST, GET, PUT et DELETE) et un exemple d'API REST de ce qu'ils signifieraient.

Supposons qu'un service Web RESTful soit dรฉfini ร  l'emplacement. https://demo.guru99.com/employee . Lorsque le client fait une requรชte ร  ce service Web, il peut spรฉcifier n'importe lequel des verbes HTTP normaux GET, POST, DELETE et PUT. Vous trouverez ci-dessous ce qui se passerait si les verbes respectifs รฉtaient envoyรฉs par le client.

  1. POSTEZ โ€“ Ceci serait utilisรฉ pour crรฉer un nouvel employรฉ en utilisant le service Web RESTful
  2. ร‰CONOMISEZ โ€“ Ceci serait utilisรฉ pour obtenir une liste de tous les employรฉs utilisant le service Web RESTful
  3. PUT โ€“ Ceci serait utilisรฉ pour mettre ร  jour tous les employรฉs utilisant le service Web RESTful
  4. EFFACER โ€“ Ceci serait utilisรฉ pour supprimer tous les employรฉs utilisant les services RESTful

Jetons un coup d'ล“il du point de vue d'un seul enregistrement. Supposons qu'il existe un enregistrement d'employรฉ portant le numรฉro d'employรฉ 1.

Les actions suivantes auraient leurs significations respectives.

  1. POSTEZ โ€“ Cela ne serait pas applicable puisque nous rรฉcupรฉrons les donnรฉes de lโ€™employรฉ 1 qui sont dรฉjร  crรฉรฉes.
  2. ร‰CONOMISEZ โ€“ Cela serait utilisรฉ pour obtenir les dรฉtails de l'employรฉ avec le numรฉro d'employรฉ 1 ร  l'aide du service Web RESTful
  3. PUT โ€“ Cela serait utilisรฉ pour mettre ร  jour les dรฉtails de l'employรฉ avec le numรฉro d'employรฉ 1 ร  l'aide du service Web RESTful
  4. EFFACER โ€“ Ceci est utilisรฉ pour supprimer les dรฉtails de l'employรฉ avec le numรฉro d'employรฉ 1

Mรฉthodes reposantes

Pourquoi reposant

Restful est devenu populaire principalement pour les raisons suivantes :

1. Langues et environnements hรฉtรฉrogรจnes โ€“ Cโ€™est une des raisons fondamentales qui est la mรชme que celle que nous avons vue pour SOAP รฉgalement.

  • Il permet aux applications Web basรฉes sur diffรฉrents langages de programmation de communiquer entre elles.
  • Avec l'aide des services Restful, ces applications Web peuvent rรฉsider sur diffรฉrents environnements, certaines pourraient รชtre sur Windows, et d'autres pourraient รชtre sous Linux.

Mais en fin de compte, quel que soit lโ€™environnement, le rรฉsultat final devrait toujours รชtre le mรชme : ils devraient pouvoir se parler. Les services Web reposants offrent cette flexibilitรฉ aux applications construites sur diffรฉrents langages de programmation et plates-formes pour communiquer entre elles.

L'image ci-dessous donne un exemple d'application Web qui doit communiquer avec d'autres applications telles que Facebook, Twitter et Google.

Dรฉsormais, si une application client devait fonctionner avec des sites tels que Facebook, Twitter, etc., elle devrait probablement savoir sur quel langage Facebook, Google et Twitter sont construits, ainsi que sur quelle plate-forme ils sont construits.

Sur cette base, nous pouvons รฉcrire le code dโ€™interface de notre application web, mais cela pourrait sโ€™avรฉrer รชtre un cauchemar.

Facebook, Twitter et Google exposent leurs fonctionnalitรฉs sous la forme de services Web Restful. Cela permet ร  n'importe quelle application client d'appeler ces services Web via REST.

Besoin de repos

2. L'รฉvรฉnement des Appareils โ€“ Aujourdโ€™hui, tout est ร  refaire Mobile appareils, qu'il s'agisse de l'appareil mobile, des ordinateurs portables ou mรชme des systรจmes de voiture.

Pouvez-vous imaginer la quantitรฉ d'efforts nรฉcessaires pour essayer de coder des applications sur ces appareils pour communiquer avec des applications Web normales ? Encore une fois, les API RESTful peuvent simplifier ce travail car, comme mentionnรฉ au point numรฉro 1, vous n'avez vraiment pas besoin de savoir quelle est la couche sous-jacente de l'appareil.

3. C'est enfin l'รฉvรฉnement du Cloud โ€“ Tout migre vers le cloud. Les applications migrent lentement vers des systรจmes basรฉs sur le cloud, comme dans Azure or Amazon. Azure et Amazon fournir de nombreuses API basรฉes sur lโ€™architecture Restful. Il faut donc dรฉsormais dรฉvelopper les applications de maniรจre ร  les rendre compatibles avec le Cloud. Ainsi, รฉtant donnรฉ que toutes les architectures basรฉes sur le Cloud fonctionnent sur le principe REST, il est plus logique que les services Web soient programmรฉs sur l'architecture basรฉe sur les services REST afin de tirer le meilleur parti des services basรฉs sur le Cloud.

Reposant Architecture

Une application ou une architecture considรฉrรฉe comme RESTful ou de style REST prรฉsente 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 normales de GET, POST, PUT ou DELETE. Ainsi, si quelqu'un souhaite obtenir un fichier d'un serveur, il devrait pouvoir รฉmettre la requรชte GET et obtenir le fichier. S'ils souhaitent placer un fichier sur le serveur, ils devraient pouvoir รฉmettre la requรชte POST ou PUT. Et enfin, sโ€™ils souhaitent supprimer un fichier du serveur, ils peuvent รฉmettre la requรชte DELETE.

2. L'architecture est 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.

Afin de garantir que la ressource est supprimรฉe, vous devez รฉmettre la requรชte GET. La requรชte GET serait utilisรฉe pour obtenir d'abord toutes les ressources sur le serveur. Aprรจs quoi il faudrait voir si la ressource a rรฉellement รฉtรฉ supprimรฉe.

Principes et contraintes RESTFul

L'architecture REST repose sur quelques caractรฉristiques qui sont dรฉtaillรฉes ci-dessous. Tout service Web RESTful doit รชtre conforme aux caractรฉristiques ci-dessous pour pouvoir รชtre appelรฉ RESTful. Ces caractรฉristiques sont รฉgalement connues sous le nom de principes de conception qui doivent รชtre suivis lorsque vous travaillez avec des services basรฉs sur RESTful.

  1. Client-Serveur RESTFul

    Principes et contraintes RESTFul

Il sโ€™agit de lโ€™exigence la plus fondamentale dโ€™une architecture basรฉe sur REST. Cela signifie que le serveur disposera d'un service Web RESTful qui fournira les fonctionnalitรฉs requises au client. Le client envoie une requรชte au service Web sur le serveur. Le serveur rejetterait la demande ou se conformerait et fournirait une rรฉponse adรฉquate au client.

  1. Apatride

Le concept d'apatride signifie qu'il appartient au client de s'assurer que toutes les informations requises sont fournies au serveur. Ceci est nรฉcessaire pour que le serveur puisse traiter la rรฉponse de maniรจre appropriรฉe. Le serveur ne doit conserver aucune sorte dโ€™informations entre les requรชtes du client. Il s'agit d'une sรฉquence de questions-rรฉponses indรฉpendante trรจs simple. Le client pose une question, le serveur y rรฉpond de maniรจre appropriรฉe. Le client posera une autre question. Le serveur ne se souviendra pas du scรฉnario question-rรฉponse prรฉcรฉdent et devra rรฉpondre ร  la nouvelle question de maniรจre indรฉpendante.

  1. Cache

Principes et contraintes RESTFul

Le concept de Cache est d'aider ร  rรฉsoudre le problรจme des apatrides dรฉcrit dans le dernier point. ร‰tant donnรฉ que chaque demande du client du serveur est indรฉpendante par nature, le client peut parfois demander ร  nouveau au serveur la mรชme demande. Et ce, mรชme sโ€™il lโ€™avait dรฉjร  demandรฉ par le passรฉ. Cette demande sera envoyรฉe au serveur et le serveur donnera une rรฉponse. Cela augmente le trafic sur le rรฉseau. Le cache est un concept implรฉmentรฉ sur le client pour stocker les requรชtes qui ont dรฉjร  รฉtรฉ envoyรฉes au serveur. Ainsi, si la mรชme requรชte est donnรฉe par le client, au lieu d'aller vers le serveur, elle ira dans le cache et obtiendra les informations requises. Cela permet d'รฉconomiser la quantitรฉ de trafic rรฉseau aller-retour du client vers le serveur.

  1. Systรจme en couches

Le concept d'un systรจme en couches est que toute couche supplรฉmentaire telle qu'une couche middleware peut รชtre insรฉrรฉe entre le client et le serveur rรฉel hรฉbergeant le service Web RESTFul (la couche middleware est l'endroit oรน toute la logique mรฉtier est crรฉรฉe. Cela peut รชtre un service supplรฉmentaire crรฉรฉ avec lequel le client peut interagir avant d'appeler le service Web.). Mais lโ€™introduction de cette couche doit รชtre transparente afin quโ€™elle ne perturbe pas lโ€™interaction entre le client et le serveur.

  1. Interface/Contrat Uniforme

Il s'agit de la technique sous-jacente au fonctionnement des services Web RESTful. RESTful fonctionne essentiellement sur la couche Web HTTP et utilise les verbes clรฉs ci-dessous pour travailler avec les ressources sur le serveur

  • POST โ€“ Pour crรฉer une ressource sur le serveur
  • GET โ€“ Pour rรฉcupรฉrer une ressource du serveur
  • PUT โ€“ Pour changer lโ€™รฉtat dโ€™une ressource ou pour la mettre ร  jour
  • DELETE โ€“ Pour supprimer ou supprimer une ressource du serveur

Crรฉez votre premier service Web Restful dans ASP.NET

Maintenant, dans ce didacticiel de l'API REST, nous allons apprendre ร  crรฉer un service Web Restful dans ASP.NET :

Les services Web peuvent รชtre crรฉรฉs dans une variรฉtรฉ de langues. 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. Dans notre exemple, pour les services Web Restful, nous allons รฉmuler l'exemple de service REST suivant.

Nous allons avoir un service Web Restful qui fonctionnera sur 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 son didacticiel basรฉ sur le Tutorialid.

Tutoriel Nom du didacticiel
0 Arrays
1 Queues
2 Combos

Dans notre exemple de didacticiel API REST, nous allons implรฉmenter les verbes reposants ci-dessous.

  1. OBTENIR Tutoriel โ€“ Lorsqu'un client invoque cette API Restful, il recevra l'ensemble des didacticiels disponibles sur le service Web.
  2. GET Tutoriel/Tutorialide โ€“ Lorsqu'un client invoque cette API Restful, il recevra le nom du didacticiel basรฉ sur le Tutorialid envoyรฉ par le client.
  3. Tutoriel POST/Nom du didacticiel โ€“ Lorsqu'un client appelle cette API Restful, le client soumettra une demande pour insรฉrer un nom de didacticiel. Le service Web ajoutera ensuite le nom du didacticiel soumis ร  la collection.
  4. DELETE Tutoriel/Tutorialidโ€“ Lorsqu'un client appelle cette API Restful, le client soumettra une demande de suppression d'un nom de didacticiel basรฉ sur le Tutorialid. Le service Web supprimera ensuite le nom du didacticiel soumis de la collection.

Suivons les รฉtapes ci-dessous dans ce didacticiel de l'API RESTful pour crรฉer nos premiers services Web RESTful, qui effectuent l'implรฉmentation ci-dessus.

Comment crรฉer votre premier service Web reposant

ร‰tape 1) Crรฉer un nouveau projet.
La premiรจre รฉtape consiste ร  crรฉer un vide Asp.Net Application Web. Depuis Visual Studio 2013, cliquez sur l'option de menu Fichier->Nouveau projet.

Crรฉer un service Web reposant

Une fois que vous avez cliquรฉ sur l'option Nouveau projet, Visual Studio vous proposera alors une autre boรฎte de dialogue pour choisir le type de projet et donner les dรฉtails nรฉcessaires du projet. Ceci est expliquรฉ dans la prochaine รฉtape de ce tutoriel API RESTful

ร‰tape 2) Entrez le nom et l'emplacement du projet.

  1. Assurez-vous de choisir dโ€™abord les services Web RESTful C# modรจle Web d'application Web ASP.NET. Le projet doit รชtre de ce type afin de crรฉer un projet de services Web. En choisissant cette option, Visual Studio effectuera ensuite les รฉtapes nรฉcessaires pour ajouter les fichiers requis par toute application Web.
  2. Donnez un nom ร  votre projet qui dans notre cas a รฉtรฉ donnรฉ comme ยซ Webservice.REST ยป.
  3. Assurez-vous ensuite de donner un emplacement oรน les fichiers du projet seront stockรฉs.

Crรฉer un service Web reposant

Une fois cela fait, vous verrez le fichier projet crรฉรฉ dans votre explorateur de solutions dans Visual Studio 2013.

Crรฉer un service Web reposant

ร‰tape 3) Crรฉez le fichier du service Web.
L'รฉtape suivante consiste ร  crรฉer le fichier de service Web qui contiendra le service Web RESTful.

  1. Faites dโ€™abord un clic droit sur le fichier du projet comme indiquรฉ ci-dessous

Crรฉer un service Web reposant

  1. Dans cette รฉtape,
    1. Faites un clic droit sur le fichier du projet
    2. Choisissez l'option "Ajouter-> nouvel รฉlรฉment".

Crรฉer un service Web reposant

Dans la boรฎte de dialogue qui apparaรฎt, vous devez effectuer les opรฉrations suivantes

  1. Choisissez l'option du service WCF (compatible Ajax) โ€“ Choisissez un fichier de ce type, cela provoque le Visual studio pour ajouter du code de base qui aide ร  crรฉer un service Web RESTful. WCF signifie Windows Communication Foundation. WCF est une bibliothรจque pour les applications de diffรฉrentes plates-formes ou de la mรชme plate-forme pour communiquer via diffรฉrents protocoles tels que TCP, HTTP, HTTPS. Ajax est fondamentalement 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.
  2. Donnez ensuite un nom au service qui est TutorialService dans notre cas.
  3. Enfin, cliquez sur le bouton Ajouter pour ajouter le service ร  la solution.

Crรฉer un service Web reposant

ร‰tape 4) Faites une configuration.
L'รฉtape suivante consiste ร  effectuer une modification de configuration pour permettre ร  ce projet de terminer son travail avec les services Web RESTful. Cela nรฉcessite d'apporter une modification au fichier appelรฉ Web.config. Ce fichier apparaรฎt dans la mรชme fenรชtre que le fichier projet Webservice. Le fichier Web.config contient toutes les configurations qui permettent ร  l'application Web de fonctionner comme il se doit. La modification apportรฉe permet en fait ร  l'application d'envoyer et de recevoir des donnรฉes en tant que service Web RESTful pur.

  1. Cliquez sur le fichier Web.config pour ouvrir le code

Crรฉer un service Web reposant

  1. Rechercher pour la ligne

Crรฉer un service Web reposant

  1. Changez la ligne en

Crรฉer un service Web reposant

ร‰tape 5) Ajoutez notre code pour l'implรฉmentation.
La prochaine รฉtape de ce didacticiel de l'API RESTful consiste ร  ajouter notre code pour l'implรฉmentation. Tout le code mentionnรฉ ci-dessous doit รชtre รฉcrit dans le fichier TutorialService.svc

  1. Le premier bit consiste ร  ajouter du code pour reprรฉsenter nos donnรฉes qui seront utilisรฉes dans notre programme. Nous allons donc avoir une liste de variables chaรฎne avec les valeurs de ยซ Arrays ยป, ยซ Queues ยป et ยซ Stacks ยป. Cela reprรฉsentera le nom des didacticiels disponibles via notre service Web d'hรฉbergement.

Crรฉer un service Web reposant

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.
Nous dรฉfinirons ensuite le code de notre mรฉthode GET. Ce code rรฉsidera รฉgalement dans le mรชme fichier TutorialService.svc. Ce code 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 mentionnรฉ ci-dessous

  • Si un utilisateur souhaite une liste de tous les didacticiels disponibles, le code ci-dessous devra รชtre รฉcrit pour y parvenir.

Crรฉer un service Web reposant

[WebGet(UriTemplate="/Tutorial")]

public String GetAllTutorial()
{
	int count = 1st.Count;
	String TutorialList = "";
	for (int i = 0; i < count; i++)
	TutorialList = TutorialList + lst[i] + ",";
	return TutorialList;
}

Explication du code : -

  1. La premiรจre ligne de code est la plus importante. Il permet de dรฉfinir comment on peut appeler cette mรฉthode via une URL. Donc, si le lien vers notre service Web est http://localhost:52645/TutorialService.svc et si nous ajoutons le '/Tutorial' ร  l'URL comme http://localhost:52645/TutorialService.svc/Tutorial , le code ci-dessus sera invoquรฉ. L'attribut de 'WebGet' est un paramรจtre qui permet ร  cette mรฉthode d'รชtre une mรฉthode RESTful afin qu'elle puisse รชtre invoquรฉe via le verbe GET.
  2. 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รฉ vers le service de didacticiel avec un identifiant de didacticiel, il renverra le nom du didacticiel correspondant en fonction de l'identifiant du didacticiel.

Crรฉer un service Web reposant

[WebGet (UriTemplate = "/Tutorial/{Tutorialid}")]

public String GetTutorialbyID(String Tutorialid)
{
	int pid;
	Int32.TryParse(Tutorialid, out pid);
	return lst[pid];
}

Explication du code : -

  1. La premiรจre ligne de code est la plus importante. Il permet de dรฉfinir comment on peut appeler cette mรฉthode via une URL. Donc, si le lien vers notre service Web est http://localhost:52645/TutorialService.svc et si nous ajoutons le '/Tutorial/{Tutorialid}' ร  l'URL, nous pourrons alors appeler le service Web comme http://localhost:52645/TutorialService.svc/Tutorial/1 par exemple. Le service Web devra alors renvoyer le nom du didacticiel portant l'identifiant du didacticiel nยฐ1.
  2. Cette section de code est utilisรฉe pour renvoyer le ยซ Nom du didacticiel ยป dont l'identifiant du didacticiel est transmis ร  la mรฉthode Web.
  • Par dรฉfaut, ce qu'il faut retenir, c'est que tout ce qui est transmis ร  l'URL dans le navigateur est une chaรฎne.
  • Mais vous devez vous rappeler que l'index de notre liste doit รชtre un entier, nous ajoutons donc le code nรฉcessaire pour d'abord convertir le Tutorialid en un entier, puis l'utiliser pour accรฉder ร  la position de l'index dans notre liste et
  • Renvoyez ensuite la valeur au programme appelant en consรฉquence.

ร‰tape 8) ร‰crivez le code de la mรฉthode POST.
L'รฉtape suivante consiste ร  rรฉdiger le code de notre mรฉthode POST. Cette mรฉthode sera invoquรฉe chaque fois que nous souhaitons ajouter une valeur de chaรฎne ร  notre liste de didacticiels via la mรฉthode POST. Par exemple, si vous souhaitez ajouter le nom du didacticiel ยซ Test logiciel ยป, vous devrez alors utiliser la mรฉthode POST.

Crรฉer un service Web reposant

Explication du code : -

  1. La premiรจre ligne est l'attribut 'WebInvoke' qui a รฉtรฉ attachรฉ ร  notre mรฉthode. Cela permet ร  la mรฉthode d'รชtre invoquรฉe via l'appel POST. Les attributs RequestFormat et ResponseFormat doivent รชtre mentionnรฉs comme JSON, car lors de la publication de valeurs sur un service Web RESTFul, les valeurs doivent รชtre dans ce format.
  2. La deuxiรจme ligne de code est utilisรฉe pour ajouter la valeur de chaรฎne transmise via l'appel POST ร  โ€‹โ€‹notre liste existante de chaรฎnes du didacticiel.

ร‰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 invoquรฉe chaque fois que nous souhaitons supprimer une valeur de chaรฎne existante de notre liste de didacticiels via la mรฉthode DELETE.

Crรฉer un service Web reposant

[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);
	1st.RemoveAt(pid);
}

Explication du code : -

  1. La premiรจre ligne est l'attribut 'WebInvoke' qui a รฉtรฉ attachรฉ ร  notre mรฉthode. Cela permet ร  la mรฉthode d'รชtre invoquรฉe via l'appel POST. Les attributs RequestFormat et ResponseFormat doivent รชtre mentionnรฉs comme JSON, car lors de la publication de valeurs sur un service Web RESTFul, les valeurs doivent รชtre dans ce format. Notez que le paramรจtre Method est dรฉfini sur ยซ DELETE ยป. Cela signifie que chaque fois que nous รฉmettons le verbe DELETE, cette mรฉthode sera invoquรฉe.
  2. 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 dans le code est utilisรฉe pour convertir l'ID du didacticiel d'une variable de 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 ci-dessus. Voyons comment exรฉcuter le service Tutorial afin qu'il puisse รชtre invoquรฉ ร  partir de 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

Exรฉcution d'un service Web reposant

ร‰tape 2) Choisissez l'option de menu ยซ Dรฉfinir comme projet de dรฉmarrage ยป. Cela garantira que ce projet est exรฉcutรฉ lorsque Visual Studio exรฉcute l'intรฉgralitรฉ de la solution

Exรฉcution d'un service Web reposant

ร‰tape 3) L'รฉtape suivante consiste ร  exรฉcuter le projet lui-mรชme. Maintenant, en fonction du navigateur par dรฉfaut installรฉ sur le systรจme, le nom du navigateur appropriรฉ 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.

Exรฉcution d'un service Web reposant

Production:-

Lorsque le projet est exรฉcutรฉ, vous pouvez accรฉder ร  votre section TutorialService.svc/Tutorial et vous obtiendrez le rรฉsultat ci-dessous.

Exรฉcution d'un service Web reposant

Dans la sortie ci-dessus,

  • Vous pouvez voir que le navigateur appelle le verbe ยซ GET ยป et exรฉcute la mรฉthode ยซ GetAllTutorial ยป dans le service Web. Ce module permet d'afficher tous les Tutoriels exposรฉs par notre service web.

Tester votre premier service Web Restful

Dans la section ci-dessus, nous avons dรฉjร  vu comment utiliser le navigateur pour exรฉcuter le verbe ยซ GET ยป et appeler le ยซ GetAllTutorial ยป.

  1. 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, il recevra le nom du didacticiel basรฉ sur le Tutorialid envoyรฉ par le client.

Dans votre navigateur, ajoutez la chaรฎne /1 aprรจs le mot Tutoriel dans l'URL. Si vous appuyez sur le bouton Entrรฉe, vous obtiendrez la sortie ci-dessous

Test du service Web reposant

Vous verrez maintenant la sortie des files d'attente qui correspond en fait au numรฉro 1 dans notre liste de chaรฎnes de didacticiel. Cela signifie que la mรฉthode 'GetTutorialbyID' est dรฉsormais invoquรฉe depuis notre Webservice. Cela montre รฉgalement que la valeur 1 est transmise avec succรจs via le navigateur ร  notre service Web et ร  notre mรฉthode et c'est pourquoi nous obtenons la valeur correspondante correcte de ยซ Files d'attente ยป dans le navigateur.

  1. Consommons ensuite 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 sur le site.

Tutoriel POST/Nom du didacticiel โ€“ Lorsqu'un client invoque cette API Restful, le client soumettra une demande pour insรฉrer un nom de didacticiel. Le service Web ajoutera ensuite le nom du didacticiel soumis ร  la collection.

Exรฉcutez l'outil Filddler et effectuez les รฉtapes ci-dessous ;

  1. Accรฉdez ร  la section compositeur. Ceci est utilisรฉ pour crรฉer des demandes qui peuvent รชtre soumises ร  nโ€™importe quelle application Web.
  2. Assurez-vous que le type de requรชte est ยซ POST ยป et que l'URL correcte est atteinte, ce qui dans notre cas devrait รชtre http://localhost:52645/TutorialService.svc/Tutorial
  3. Assurez-vous que le type de contenu est marquรฉ comme application/json. N'oubliez pas que notre mรฉthode de requรชte POST dans notre service Web n'accepte que les donnรฉes de style json. Nous devons donc nous assurer que cela est spรฉcifiรฉ lorsque nous envoyons une requรชte ร  notre application.
  4. Enfin, nous devons saisir nos donnรฉes. N'oubliez pas que notre mรฉthode pour POST accepte un paramรจtre appelรฉ ยซ str ยป. Nous spรฉcifions donc ici que nous voulons ajouter une valeur appelรฉe ยซ Arbres ยป ร  notre collection de noms de didacticiels et nous assurer qu'elle est รฉtiquetรฉe avec le nom de la variable str.

Enfin, cliquez simplement sur le bouton Exรฉcuter dans Fiddler. Cela enverra une demande au service Web pour POSTER les donnรฉes ยซ Arbres ยป sur notre service Web.

Test du service Web reposant

Dรฉsormais, lorsque nous parcourons l'URL du didacticiel pour afficher toutes les chaรฎnes de notre liste de didacticiels, vous verrez maintenant que la valeur de ยซ Arbres ยป est รฉgalement prรฉsente. Cela montre que la requรชte POST adressรฉe au service Web a รฉtรฉ exรฉcutรฉe avec succรจs et qu'elle a รฉtรฉ ajoutรฉe avec succรจs ร  notre liste de didacticiels.

Test du service Web reposant

  1. Consommons ensuite notre service Web en exรฉcutant le scรฉnario ci-dessous. Pour cela รฉgalement, nous devons utiliser l'outil fiddler

DELETE Tutorial/Tutorialid - Lorsqu'un client invoque cette API Restful, le client soumettra une demande de suppression d'un nom de tutoriel basรฉ sur le Tutorialid. Le service Web supprimera ensuite le nom du didacticiel soumis de la collection.

Exรฉcutez l'outil Filddler et effectuez les รฉtapes ci-dessous

  1. Accรฉdez ร  la section compositeur. Ceci est utilisรฉ pour crรฉer des demandes qui peuvent รชtre soumises ร  nโ€™importe quelle application Web.
  2. Assurez-vous que le type de requรชte est ยซ DELETE ยป et que l'URL correcte est atteinte, ce qui dans notre cas devrait รชtre http://localhost:52645/TutorialService.svc/Tutorial. Assurez-vous que l'identifiant utilisรฉ pour supprimer une chaรฎne dans la liste est envoyรฉ via l'URL en tant que paramรจtre. Dans notre exemple REST, nous envoyons 1 donc cela supprimera le 2nd รฉlรฉment de notre collection qui est ยซ Queues ยป.

Enfin, cliquez simplement sur le bouton Exรฉcuter dans Fiddler. Cela enverra une demande au service Web pour SUPPRIMER les donnรฉes ยซ Files dโ€™attente ยป vers notre service Web.

Test du service Web reposant

Dรฉsormais, lorsque nous parcourons l'URL du didacticiel pour afficher toutes les chaรฎnes de notre liste de didacticiels, vous remarquerez que la valeur de ยซ Files d'attente ยป n'est plus prรฉsente.

Cela montre que la requรชte DELETE adressรฉe au service Web a รฉtรฉ exรฉcutรฉe avec succรจs. L'รฉlรฉment ร  l'index numรฉro 1 dans notre liste de chaรฎnes du didacticiel a รฉtรฉ supprimรฉ avec succรจs.

Test du service Web reposant

Rรฉsumรฉ

  • REST signifie REpresentational State Transfer. REST est utilisรฉ pour crรฉer des services Web lรฉgers, maintenables et รฉvolutifs.
  • De plus en plus d'applications migrent vers l'architecture Restful. En effet, de nombreuses personnes utilisent dรฉsormais des appareils mobiles et une plus grande variรฉtรฉ d'applications migrent vers le cloud.
  • Les principaux aspects de REST sont les ressources qui rรฉsident sur le serveur et les verbes GET, POST, PUT et DELETE, qui peuvent รชtre utilisรฉs pour travailler avec ces ressources.
  • Visual Studio et.Net peuvent รชtre utilisรฉs pour crรฉer des services Web Restful.
  • Lorsque vous Tests services Web pour POST et PUT, vous devez utiliser un autre outil appelรฉ fiddler qui peut รชtre utilisรฉ pour envoyer la requรชte POST et PUT au serveur.

Rรฉsumez cet article avec :