15
Utilisation d'une API Web avec ASP.NET MVC 3 Auteur: Jean-Michel ORMES

Utilisation d'une api web avec asp

Embed Size (px)

Citation preview

Page 1: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 Auteur: Jean-Michel ORMES

Page 2: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3

Nous allons voir quelles sont les étapes à suivre pour utiliser une API Web WCF au sein d'une application MVC.

Tout d'abord, créons un projet de type Application Web ASP.NET MVC3 que l'on va appeler ArtistManager.

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 2

Page 3: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3

On sélectionne le modèle vide et on conserve le moteur de vue Razor.

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 3

Une fois le projet créé, on effectue un clic-droit → Propriétés → Web. Dans la partie Serveurs, on indique un port spécifique (Exemple : 1402).

Page 4: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 4

La prochaine étape consiste à installer un paquet de création d'API Web par l'intermédiaire de NuGet. NB : Si vous n'avez toujours pas installé NuGet sur votre machine, je vous suggère de lire ce tutoriel d'Hinault Romaric DONFACK qui détaille toutes les informations relatives à ce sujet.

Page 5: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

Pour cela, nous allons cliquer sur Outils → Library Package Manager → Add Library Package Reference, rechercher le paquet WebApi.All, et l'installer.

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 5

Page 6: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

Une fois l'installation effectuée, vous pouvez remarquer que des références ont été ajoutées à votre projet.

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 6

Nous sommes désormais prêt à construire notre API Web. Dans un premier temps, nous allons créer un dossier API qui contiendra nos classes API. Au sein de ce dossier, nous allons ajouter une nouvelle classe API que l'on va appelée ArtistApi.

Page 7: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 7

A ce stade, vous devriez avoir ce code dans votre classe :

On va la modifier en y ajoutant l'attribut ServiceContract afin d'indiquer à l'API Web que cette classe peut être exposée en tant que service. Cet attribut nécessite l'espace de noms System.ServiceModel.

Page 8: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

Maintenant, nous allons enregistrer dans le fichier Global.asax.cs.

Ajoutez les espaces de noms suivants :

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 8

Dans la méthode RegisterRoutes, il va falloir ajouter le bout de code suivant afin d'enregistrer une route pour notre nouvel API Web :

Vous devriez avoir :

routes.Add(new ServiceRoute("api/artists", new HttpServiceHostFactory(), typeof(ArtistApi)));

Page 9: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

La classe ServiceRoute permet de créer un itinéraire de service sur HTTP pour la prise en charge de scénarios REST. Elle prend 3 paramètres : un préfix d'itinéraire, une instance de classe HttpServiceHostFactory et un type de service.

Nous allons implémenter une classe POCO Artiste qui contiendra les informations qui seront passés via l'API. Il s'agit essentiellement d'un DTO (Data Transfer Object) mais en HTTP on considère que cette entité est représentée par une « Ressource ». Nous créerons également une méthode qui exposera notre ressource. Cela permettra à de multiples clients d'accéder à la ressource.

Comme fait précédemment, on va créer un dossier Ressources qui contiendra l'ensemble de nos ressources et y ajouter une classe Artist contenant le code suivant :

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 9

Page 10: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

Dans la classe ArtistApi, il va falloir ajouter les espaces de noms suivants :

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 10

Ainsi que la méthode Get suivante permettant de rapatrier les artistes :

Ici, l'attribut WebGet indique à l'API Web que cette méthode doit être exposée en tant que requête HTTP GET. On prend soin de passer une chaîne vide à l'UriTemplate. En effet, nous avons déjà définit la route de notre URL dans le Global.asax.

Page 11: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

D'ailleurs, vous pouvez vérifier que tout fonctionne et que votre liste d'artistes vous est renvoyée en vous rendant à l'URL suivante : http://localhost:1402/api/artists

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 11

Afin de tester leurs fonctionnalités, les Web API contiennent un module de test côté client que l'on peut configurer en créant une instance de HttpConfiguration dans la méthode RegisterRoutes :

Page 12: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

Il faudra ensuite passer cette instance au HttpServiceHostFactory de la route du Web API que nous avions créé précédemment.

routes.Add(new ServiceRoute("api/artists", new HttpServiceHostFactory() { Configuration = config }, typeof(ArtistApi)));

On relance le projet, puis on se rend à l'URL suivante : http://localhost:1402/api/artists/test

Ce qui nous amène sur la page de test.

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 12

Page 13: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

Lorsque l'on clique sur notre ressource, cela a pour effet de remplir les champs Request et HTTP/1.1

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 13

Page 14: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

On clique sur le bouton Send pour afficher la réponse de la requête GET :

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 14

Page 15: Utilisation d'une api web avec asp

Utilisation d'une API Web avec ASP.NET MVC 3 (suite)

On peut également récupérer la liste des Artistes au format JSON en passant la valeur « application/json » au paramètre Accept du champ Header :

21/02/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 15