SlideShare une entreprise Scribd logo
2014-03-27 3T – ASP.NET WebAPI 1
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
ASP.NET WebAPI
REST et les APIs
2014-03-27 3T – ASP.NET WebAPI 3
Web API
2014-03-27 3T – ASP.NET WebAPI 4
⦿REST ?
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
Web API
2014-03-27 3T – ASP.NET WebAPI 6
Web API
2014-03-27 3T – ASP.NET WebAPI 7
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
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
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>
Web API
2014-03-27 3T – ASP.NET WebAPI 11
⦿ASP.NET MVC ou ASP.NET Web API ?
Web API
2014-03-27 3T – ASP.NET WebAPI 12
⦿Un modèle similaire à ASP.NET MVC
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 }
);
ASP.NET WebAPI
La négociation de
contenu
2014-03-27 3T – ASP.NET WebAPI 14
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
ASP.NET WebAPI
Le routage par attribut
2014-03-27 3T – ASP.NET WebAPI 16
Le routage par attribut
2014-03-27 3T – ASP.NET WebAPI 17
⦿Simplifier la table de routage
⦿Simplifier l’écriture des contrôleurs
Le routage par attribut
2014-03-27 3T – ASP.NET WebAPI 18
ASP.NET WebAPI
Web API Client
2014-03-27 3T – ASP.NET WebAPI 19
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
Web API Client
2014-03-27 3T – ASP.NET WebAPI 21
⦿Et à l’usage ?
ASP.NET WebAPI
Requête en mode batch
2014-03-27 3T – ASP.NET WebAPI 22
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)
Requête en mode batch
2014-03-27 3T – ASP.NET WebAPI 24
⦿La seule chose à faire côté serveur
ASP.NET WebAPI
Documentation
2014-03-27 3T – ASP.NET WebAPI 25
Documentation
2014-03-27 3T – ASP.NET WebAPI 26
Documentation
2014-03-27 3T – ASP.NET WebAPI 27
2014-03-27 3T – ASP.NET WebAPI 28
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

Contenu connexe

Tendances

Nouveautés disponibles dans asp
Nouveautés disponibles dans aspNouveautés disponibles dans asp
Nouveautés disponibles dans asp
Novencia Groupe
 
Utilisation d'une api web avec asp
Utilisation d'une api web avec aspUtilisation d'une api web avec asp
Utilisation d'une api web avec asp
Novencia Groupe
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
13p
 
M20486 formation-developper-des-applications-web-asp-net-mvc-4
M20486 formation-developper-des-applications-web-asp-net-mvc-4M20486 formation-developper-des-applications-web-asp-net-mvc-4
M20486 formation-developper-des-applications-web-asp-net-mvc-4
CERTyou Formation
 

Tendances (20)

Entity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity FrameworkEntity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity Framework
 
ASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marcheASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marche
 
Adopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front SideAdopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front Side
 
03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA 03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014
 
02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC 02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC
 
Active Server Pages (ASP)
Active Server Pages (ASP)Active Server Pages (ASP)
Active Server Pages (ASP)
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
Débuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJSDébuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJS
 
Nouveautés disponibles dans asp
Nouveautés disponibles dans aspNouveautés disponibles dans asp
Nouveautés disponibles dans asp
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Angular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium VersusmindAngular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium Versusmind
 
Utilisation d'une api web avec asp
Utilisation d'une api web avec aspUtilisation d'une api web avec asp
Utilisation d'une api web avec asp
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme Meteor
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière
 
M20486 formation-developper-des-applications-web-asp-net-mvc-4
M20486 formation-developper-des-applications-web-asp-net-mvc-4M20486 formation-developper-des-applications-web-asp-net-mvc-4
M20486 formation-developper-des-applications-web-asp-net-mvc-4
 

En vedette

Présentation spring data Matthieu Briend
Présentation spring data  Matthieu BriendPrésentation spring data  Matthieu Briend
Présentation spring data Matthieu Briend
SOAT
 
20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat
SOAT
 

En vedette (20)

2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand
 
Windows Azure et SharePoint la Cloud-Story par Wilfried Woivre le 27/06/13
Windows Azure et SharePoint la Cloud-Story par Wilfried Woivre le 27/06/13Windows Azure et SharePoint la Cloud-Story par Wilfried Woivre le 27/06/13
Windows Azure et SharePoint la Cloud-Story par Wilfried Woivre le 27/06/13
 
Mathieu parisot spring profiles
Mathieu parisot spring profilesMathieu parisot spring profiles
Mathieu parisot spring profiles
 
Introduction à Dart
Introduction à DartIntroduction à Dart
Introduction à Dart
 
Introduction to dart par Yohan Beschi
Introduction to dart par Yohan BeschiIntroduction to dart par Yohan Beschi
Introduction to dart par Yohan Beschi
 
Windows azure : tour d'horizon
Windows azure : tour d'horizonWindows azure : tour d'horizon
Windows azure : tour d'horizon
 
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
 
Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613
 
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu ParisotDans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
 
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseJAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entreprise
 
1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand
 
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
 
Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !
 
Présentation spring data Matthieu Briend
Présentation spring data  Matthieu BriendPrésentation spring data  Matthieu Briend
Présentation spring data Matthieu Briend
 
20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat
 
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
 
L'entreprise libérée
L'entreprise libéréeL'entreprise libérée
L'entreprise libérée
 
Transition agile organisationnelle à grande échelle
Transition agile organisationnelle à grande échelleTransition agile organisationnelle à grande échelle
Transition agile organisationnelle à grande échelle
 
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
 
Je suis agile tout seul - Ricardo Minhoto
Je suis agile tout seul - Ricardo MinhotoJe suis agile tout seul - Ricardo Minhoto
Je suis agile tout seul - Ricardo Minhoto
 

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

ÉVolution d'un système de publication de données techniques automobiles, modé...
ÉVolution d'un système de publication de données techniques automobiles, modé...ÉVolution d'un système de publication de données techniques automobiles, modé...
ÉVolution d'un système de publication de données techniques automobiles, modé...
SemWebPro
 
Digital race evolution programmation web 1.0
Digital race   evolution programmation web 1.0Digital race   evolution programmation web 1.0
Digital race evolution programmation web 1.0
Sequoia-ID
 

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

ASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API ManagementASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API Management
 
ÉVolution d'un système de publication de données techniques automobiles, modé...
ÉVolution d'un système de publication de données techniques automobiles, modé...ÉVolution d'un système de publication de données techniques automobiles, modé...
ÉVolution d'un système de publication de données techniques automobiles, modé...
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
 
[FR] C'est quoi une API ?
[FR] C'est quoi une API ?[FR] C'est quoi une API ?
[FR] C'est quoi une API ?
 
Déploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec RancherDéploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec Rancher
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5
 
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
 
Geek Time December 2016 : Swagger II
Geek Time December 2016 : Swagger IIGeek Time December 2016 : Swagger II
Geek Time December 2016 : Swagger II
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2
 
Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.net
 
Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...
Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...
Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...
 
Design API - SnowCampIO
Design API - SnowCampIODesign API - SnowCampIO
Design API - SnowCampIO
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)
 
Quoi de neuf dans ASP.NET MVC 4
Quoi de neuf dans ASP.NET MVC 4Quoi de neuf dans ASP.NET MVC 4
Quoi de neuf dans ASP.NET MVC 4
 
Le service workers
Le service workersLe service workers
Le service workers
 
SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api management
 
Geek Time Mai 2017 : Vue.js
Geek Time Mai 2017 : Vue.jsGeek Time Mai 2017 : Vue.js
Geek Time Mai 2017 : Vue.js
 
PHP et PHP Framework
PHP et PHP FrameworkPHP et PHP Framework
PHP et PHP Framework
 
Digital race evolution programmation web 1.0
Digital race   evolution programmation web 1.0Digital race   evolution programmation web 1.0
Digital race evolution programmation web 1.0
 

Plus de SOAT

Plus de SOAT (10)

Back from Microsoft //Build 2018
Back from Microsoft //Build 2018Back from Microsoft //Build 2018
Back from Microsoft //Build 2018
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
 
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
 
Xamarin et le développement natif d’applications Android, iOS et Windows en C#
 Xamarin et le développement natif d’applications Android, iOS et Windows en C# Xamarin et le développement natif d’applications Android, iOS et Windows en C#
Xamarin et le développement natif d’applications Android, iOS et Windows en C#
 
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatA la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
 
MongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesMongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de données
 
Facilitez vous la vie - Ricardo Minhoto
Facilitez vous la vie - Ricardo MinhotoFacilitez vous la vie - Ricardo Minhoto
Facilitez vous la vie - Ricardo Minhoto
 
Transition Agile technique à grande échelle
Transition Agile technique à grande échelleTransition Agile technique à grande échelle
Transition Agile technique à grande échelle
 
Tests unitaires mock_kesako_20130516
Tests unitaires mock_kesako_20130516Tests unitaires mock_kesako_20130516
Tests unitaires mock_kesako_20130516
 

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

  • 1. 2014-03-27 3T – ASP.NET WebAPI 1
  • 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. ASP.NET WebAPI REST et les APIs 2014-03-27 3T – ASP.NET WebAPI 3
  • 4. Web API 2014-03-27 3T – ASP.NET WebAPI 4 ⦿REST ?
  • 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. Web API 2014-03-27 3T – ASP.NET WebAPI 6
  • 7. Web API 2014-03-27 3T – ASP.NET WebAPI 7
  • 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. 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. 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. Web API 2014-03-27 3T – ASP.NET WebAPI 11 ⦿ASP.NET MVC ou ASP.NET Web API ?
  • 12. Web API 2014-03-27 3T – ASP.NET WebAPI 12 ⦿Un modèle similaire à ASP.NET MVC
  • 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. ASP.NET WebAPI La négociation de contenu 2014-03-27 3T – ASP.NET WebAPI 14
  • 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. ASP.NET WebAPI Le routage par attribut 2014-03-27 3T – ASP.NET WebAPI 16
  • 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. Le routage par attribut 2014-03-27 3T – ASP.NET WebAPI 18
  • 19. ASP.NET WebAPI Web API Client 2014-03-27 3T – ASP.NET WebAPI 19
  • 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. Web API Client 2014-03-27 3T – ASP.NET WebAPI 21 ⦿Et à l’usage ?
  • 22. ASP.NET WebAPI Requête en mode batch 2014-03-27 3T – ASP.NET WebAPI 22
  • 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. Requête en mode batch 2014-03-27 3T – ASP.NET WebAPI 24 ⦿La seule chose à faire côté serveur
  • 26. Documentation 2014-03-27 3T – ASP.NET WebAPI 26
  • 27. Documentation 2014-03-27 3T – ASP.NET WebAPI 27
  • 28. 2014-03-27 3T – ASP.NET WebAPI 28
  • 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