ASP.Net Web API - Léonard Labat (18 février 2014)

3,071 views
2,868 views

Published on

HTTP est un protocole simple à comprendre, simple à utiliser et c’est cette simplicité qui le rend disponible sur un grand nombre de plate-forme. REST, de son côté, est un style d’architecture qui permet d’exposer facilement une API en utilisant HTTP et différents types de représentations de données tels que JSON ou XML.

ASP.NET Web API est une évolution de WCF pour écrire une couche d’API REST, en utilisant un modèle de programmation proche d’ASP.NET MVC. Cette soirée 3T sera l’occasion pour vous de découvrir les fonctionnalités offertes par ASP.NET Web API qui font que c’est une technologie qu’il faut envisager d’utiliser lorsque vous devez créer une API REST.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,071
On SlideShare
0
From Embeds
0
Number of Embeds
96
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ASP.Net Web API - Léonard Labat (18 février 2014)

  1. 1. 2014-03-27 3T – ASP.NET WebAPI 1
  2. 2. Agenda ⦿ REST et les APIs ⦿ La négociation de contenu ⦿ Routage par attribut ⦿ Web API Client ⦿ Support des requêtes batch ⦿ La documentation 2014-03-27 3T – ASP.NET WebAPI 2
  3. 3. ASP.NET WebAPI REST et les APIs 2014-03-27 3T – ASP.NET WebAPI 3
  4. 4. Web API 2014-03-27 3T – ASP.NET WebAPI 4 ⦿REST ?
  5. 5. Web API 2014-03-27 3T – ASP.NET WebAPI 5 ⦿REST ? 3 règles principales ⦿ URI : Identifiant de ressources ⦿ Verbe HTTP : Identifiant d’opération ⦿ Réponse HTTP : Représentation d’une ressource
  6. 6. Web API 2014-03-27 3T – ASP.NET WebAPI 6
  7. 7. Web API 2014-03-27 3T – ASP.NET WebAPI 7
  8. 8. Web API 2014-03-27 3T – ASP.NET WebAPI 8 ⦿Des exemples … ⦿ Récupérer un produit ? ⦿POST ? NON ! ⦿GET ? OUI ! ⦿ GET http://monsiteweb/livre/3
  9. 9. Web API 2014-03-27 3T – ASP.NET WebAPI 9 ⦿… ⦿ Créer un produit ? ⦿GET ? NON ! ⦿POST ? OUI ! ⦿ POST http://monsiteweb/livre/creer ⦿ Mais aussi : PUT, DELETE, PATCH, HEAD
  10. 10. Web API 2014-03-27 3T – ASP.NET WebAPI 10 ⦿Format des données et content negociation ⦿ Entête Accept ⦿ Application/json ⦿ Application/xml ⦿ … { "Id":5, "Nom":"Produit 5" } <Produit xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MvcApplication.Controllers"> <Id>5</Id> <Nom>Produit 5</Nom> </Produit>
  11. 11. Web API 2014-03-27 3T – ASP.NET WebAPI 11 ⦿ASP.NET MVC ou ASP.NET Web API ?
  12. 12. Web API 2014-03-27 3T – ASP.NET WebAPI 12 ⦿Un modèle similaire à ASP.NET MVC
  13. 13. Web API 2014-03-27 3T – ASP.NET WebAPI 13 ⦿Et à l’usage ? public class ValuesController : ApiController { public IEnumerable<string> Get() { return new[] { "value1", "value2" }; } } config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );
  14. 14. ASP.NET WebAPI La négociation de contenu 2014-03-27 3T – ASP.NET WebAPI 14
  15. 15. La négociation de contenu 2014-03-27 3T – ASP.NET WebAPI 15 ⦿En interne : ⦿ Le ContentNegociator et les ContentNegociationResult ⦿Pour créer un nouveau formatter ⦿ MediaTypeFormatter ⦿ BufferedMediaTypeFormatter
  16. 16. ASP.NET WebAPI Le routage par attribut 2014-03-27 3T – ASP.NET WebAPI 16
  17. 17. Le routage par attribut 2014-03-27 3T – ASP.NET WebAPI 17 ⦿Simplifier la table de routage ⦿Simplifier l’écriture des contrôleurs
  18. 18. Le routage par attribut 2014-03-27 3T – ASP.NET WebAPI 18
  19. 19. ASP.NET WebAPI Web API Client 2014-03-27 3T – ASP.NET WebAPI 19
  20. 20. Web API Client 2014-03-27 3T – ASP.NET WebAPI 20 ⦿ Un paquet NuGet ⦿ Microsoft.AspNet.WebApi.Client ⦿ La classe HttpClient ⦿ Le même modèle que le code serveur  ⦿ Egalement disponible pour les apps W8 et Windows Phone
  21. 21. Web API Client 2014-03-27 3T – ASP.NET WebAPI 21 ⦿Et à l’usage ?
  22. 22. ASP.NET WebAPI Requête en mode batch 2014-03-27 3T – ASP.NET WebAPI 22
  23. 23. Requête en mode batch 2014-03-27 3T – ASP.NET WebAPI 23 ⦿Minimiser le nombre de requêtes ⦿ Réduire le traffic réseau ⦿ UI moins « clignotante » ⦿Utiliser une requête HTTP multipart ⦿Point d’entrée attaché à un handler spécifique (HttpBatchHandler)
  24. 24. Requête en mode batch 2014-03-27 3T – ASP.NET WebAPI 24 ⦿La seule chose à faire côté serveur
  25. 25. ASP.NET WebAPI Documentation 2014-03-27 3T – ASP.NET WebAPI 25
  26. 26. Documentation 2014-03-27 3T – ASP.NET WebAPI 26
  27. 27. Documentation 2014-03-27 3T – ASP.NET WebAPI 27
  28. 28. 2014-03-27 3T – ASP.NET WebAPI 28
  29. 29. Pour aller plus loin ⦿ http://www.asp.net/web-api ⦿ http://blogs.msdn.com/b/webdev/ ⦿ http://blog.soat.fr/author/leonard-labat/ ⦿ http://blogs.developpeur.org/leo/ 2014-03-27 3T – ASP.NET WebAPI 29

×