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

2023-04-12

ASP.NET WebAPI

3T – ASP.NET WebAPI 1

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

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

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

ASP.NET WebAPI

REST et les APIs

2023-04-12 3T – ASP.NET WebAPI 3

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

4

Web API

2023-04-12 3T – ASP.NET WebAPI

⦿REST ?

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

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

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

6

Web API

2023-04-12 3T – ASP.NET WebAPI

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

7

Web API

2023-04-12 3T – ASP.NET WebAPI

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

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

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

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

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

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>

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

11

Web API

2023-04-12 3T – ASP.NET WebAPI

⦿ASP.NET MVC ou ASP.NET Web API ?

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

12

Web API

2023-04-12 3T – ASP.NET WebAPI

⦿Un modèle similaire à ASP.NET MVC

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

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 });

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

ASP.NET WebAPI

La négociation de contenu

2023-04-12 3T – ASP.NET WebAPI 14

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

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

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

ASP.NET WebAPI

Le routage par attribut

2023-04-12 3T – ASP.NET WebAPI 16

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

17

Le routage par attribut

2023-04-12 3T – ASP.NET WebAPI

⦿Simplifier la table de routage

⦿Simplifier l’écriture des contrôleurs

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

18

Le routage par attribut

2023-04-12 3T – ASP.NET WebAPI

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

ASP.NET WebAPI

Web API Client

2023-04-12 3T – ASP.NET WebAPI 19

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

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

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

21

Web API Client

2023-04-12 3T – ASP.NET WebAPI

⦿Et à l’usage ?

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

ASP.NET WebAPI

Requête en mode batch

2023-04-12 3T – ASP.NET WebAPI 22

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

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)

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

24

Requête en mode batch

2023-04-12 3T – ASP.NET WebAPI

⦿La seule chose à faire côté serveur

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

ASP.NET WebAPI

Documentation

2023-04-12 3T – ASP.NET WebAPI 25

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

26

Documentation

2023-04-12 3T – ASP.NET WebAPI

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

27

Documentation

2023-04-12 3T – ASP.NET WebAPI

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

2023-04-12 3T – ASP.NET WebAPI 28

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

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


Top Related