ASP.Net Web API - Léonard Labat (18 février 2014)
-
Upload
soat -
Category
Technology
-
view
2.612 -
download
0
description
Transcript of ASP.Net Web API - Léonard Labat (18 février 2014)
2023-04-12
ASP.NET WebAPI
3T – ASP.NET WebAPI 1
2023-04-12 2
Agenda
⦿ REST et les APIs
⦿ La négociation de contenu
⦿ Routage par attribut
⦿ Web API Client
⦿ Support des requêtes batch
⦿ La documentation
3T – ASP.NET WebAPI
ASP.NET WebAPI
REST et les APIs
2023-04-12 3T – ASP.NET WebAPI 3
4
Web API
2023-04-12 3T – ASP.NET WebAPI
⦿REST ?
5
Web API
2023-04-12 3T – ASP.NET WebAPI
⦿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
2023-04-12 3T – ASP.NET WebAPI
7
Web API
2023-04-12 3T – ASP.NET WebAPI
8
Web API
2023-04-12 3T – ASP.NET WebAPI
⦿Des exemples …
⦿ Récupérer un produit ?⦿POST ? NON !⦿GET ? OUI !⦿ GET http://monsiteweb/livre/3
9
Web API
2023-04-12 3T – ASP.NET WebAPI
⦿…
⦿ Créer un produit ?⦿GET ? NON !⦿POST ? OUI !⦿ POST http://monsiteweb/livre/creer
⦿ Mais aussi : PUT, DELETE, PATCH, HEAD
10
Web API
2023-04-12 3T – ASP.NET WebAPI
⦿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
2023-04-12 3T – ASP.NET WebAPI
⦿ASP.NET MVC ou ASP.NET Web API ?
12
Web API
2023-04-12 3T – ASP.NET WebAPI
⦿Un modèle similaire à ASP.NET MVC
13
Web API
2023-04-12 3T – ASP.NET WebAPI
⦿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
2023-04-12 3T – ASP.NET WebAPI 14
15
La négociation de contenu
2023-04-12 3T – ASP.NET WebAPI
⦿En interne :⦿ Le ContentNegociator et
les ContentNegociationResult
⦿Pour créer un nouveau formatter⦿ MediaTypeFormatter⦿ BufferedMediaTypeFormatter
ASP.NET WebAPI
Le routage par attribut
2023-04-12 3T – ASP.NET WebAPI 16
17
Le routage par attribut
2023-04-12 3T – ASP.NET WebAPI
⦿Simplifier la table de routage
⦿Simplifier l’écriture des contrôleurs
18
Le routage par attribut
2023-04-12 3T – ASP.NET WebAPI
ASP.NET WebAPI
Web API Client
2023-04-12 3T – ASP.NET WebAPI 19
20
Web API Client
2023-04-12 3T – ASP.NET WebAPI
⦿ 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
2023-04-12 3T – ASP.NET WebAPI
⦿Et à l’usage ?
ASP.NET WebAPI
Requête en mode batch
2023-04-12 3T – ASP.NET WebAPI 22
23
Requête en mode batch
2023-04-12 3T – ASP.NET WebAPI
⦿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
2023-04-12 3T – ASP.NET WebAPI
⦿La seule chose à faire côté serveur
ASP.NET WebAPI
Documentation
2023-04-12 3T – ASP.NET WebAPI 25
26
Documentation
2023-04-12 3T – ASP.NET WebAPI
27
Documentation
2023-04-12 3T – ASP.NET WebAPI
2023-04-12 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/
2023-04-12 3T – ASP.NET WebAPI