2. 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 - contact@novencia.com 2
3. 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.
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).
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 - contact@novencia.com 3
4. Utilisation d'une API Web avec ASP.NET MVC 3 (suite)
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.
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 - contact@novencia.com 4
5. 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 - contact@novencia.com 5
6. 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.
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.
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 - contact@novencia.com 6
7. Utilisation d'une API Web avec ASP.NET MVC 3 (suite)
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.
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 - contact@novencia.com 7
8. 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 :
Dans la méthode RegisterRoutes, il va falloir ajouter le bout de code suivant afin d'enregistrer une
route pour notre nouvel API Web :
routes.Add(new ServiceRoute("api/artists", new HttpServiceHostFactory(), typeof(ArtistApi)));
Vous devriez avoir :
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 - contact@novencia.com 8
9. 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 - contact@novencia.com 9
10. Utilisation d'une API Web avec ASP.NET MVC 3 (suite)
Dans la classe ArtistApi, il va falloir ajouter les espaces de noms suivants :
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.
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 - contact@novencia.com 10
11. 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
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 :
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 - contact@novencia.com 11
12. 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 - contact@novencia.com 12
13. 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 - contact@novencia.com 13
14. 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 - contact@novencia.com 14
15. 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 - contact@novencia.com 15