Utilisation d'une api web avec asp

  • 1,430 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,430
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
15
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Utilisation dune API Web avec ASP.NET MVC 3 Auteur: Jean-Michel ORMES
  • 2. Utilisation dune API Web avec ASP.NET MVC 3 Nous allons voir quelles sont les étapes à suivre pour utiliser une API Web WCF au sein dune application MVC. Tout dabord, créons un projet de type Application Web ASP.NET MVC3 que lon 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 dune 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 dune API Web avec ASP.NET MVC 3 (suite) La prochaine étape consiste à installer un paquet de création dAPI Web par lintermédiaire de NuGet. NB : Si vous navez toujours pas installé NuGet sur votre machine, je vous suggère de lire ce tutoriel dHinault 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 dune 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 linstaller.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 dune API Web avec ASP.NET MVC 3 (suite) Une fois linstallation 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 lon 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 dune 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 lattribut ServiceContract afin dindiquer à lAPI Web que cette classe peut être exposée en tant que service. Cet attribut nécessite lespace 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 dune 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 denregistrer 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 dune 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 ditiné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 lAPI. Il sagit essentiellement dun 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 daccéder à la ressource. Comme fait précédemment, on va créer un dossier Ressources qui contiendra lensemble 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 dune 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, lattribut WebGet indique à lAPI 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 à lUriTemplate. 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 dune API Web avec ASP.NET MVC 3 (suite) Dailleurs, vous pouvez vérifier que tout fonctionne et que votre liste dartistes vous est renvoyée en vous rendant à lURL suivante : http://localhost:1402/api/artists Afin de tester leurs fonctionnalités, les Web API contiennent un module de test côté client que lon 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 dune 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 à lURL 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 dune API Web avec ASP.NET MVC 3 (suite) Lorsque lon clique sur notre ressource, cela a pour effet de remplir les champs Request et HTTP/1.121/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 dune 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 dune 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