Une RESTful Architecture
Upcoming SlideShare
Loading in...5
×
 

Une RESTful Architecture

on

  • 308 views

 

Statistics

Views

Total Views
308
Views on SlideShare
293
Embed Views
15

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 15

http://www.scoop.it 15

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Une RESTful Architecture Une RESTful Architecture Presentation Transcript

  • Une RESTful ArchitectureCommunauté .NET Montréal
  • Une RESTful Architecture@brisebois runatserver.comAlexandre BriseboisDéveloppeur SéniorRunatserverMontréalWeb ● Touch ● Mobile ●Training
  • REpresentational state transferN’est PAS• RPCoREST n’est pas pour faire des appels a desméthodes via le réseau• HTTPo Même si vous utiliser HTTP comme protocole decommunication, il se peut que votre service ne soitpas RESTful• URIsoLes URIs propres ne sont pas un prérequis deREST
  • BénéficesPortabilitéScalabilityEvolvabilityVisibilitéFiabilitéEfficacitéPerformanceManageability
  • Forces de RESTPeut palier au manque de fiabilité du réseauPeut réduire les temps de latencePeut réduire la bande passante utiliserPeut simplifier la sécuritéRésiste a une Topologie du réseau changeantePeut distribue l’administrationPeut réduire les couts de transportPeut vivre dans un réseaux non hétérogènesPeut réduit Complexité
  • Une interface uniformeIdentification de ressourcesManipulation via représentationsMessage Auto-descriptifsHypermedia as the engine ofapplication state (HATEOAS)
  • Les differentniveaux de REST12 30
  • 123RessourcesVerbes HTTPHypermédiaPOX0Le chemin versREST tel que décrispar LeonardRichardson
  • POX (Plain Old XML)010111010101001010010100100110100100100100010010010101010100100100100100100101111011010010010111011010010101010
  • 123RessourcesVerbes HTTPHypermédiaPOX0Le chemin versREST tel que décrispar LeonardRichardson
  • Ressourceshttp://localhost/api/taskshttp://localhost/api/tasks/(?id)http://localhost/api/tasks/backloghttp://localhost/api/tasks/in-progresshttp://localhost/api/tasks/completedMappe un concept nommé à un ensemble dentités dans le tempsRelation plusieurs à plusieurs entre les concepts et les entitésLa relation peut être stable dans le temps, ou il peut changerfréquemment
  • 123RessourcesVerbes HTTPHypermédiaPOX0Le chemin versREST tel que décrispar LeonardRichardson
  • Verbes HTTPGETPOSTPUTDELETEHEADPATCHTitre présentation
  • A REST API should be entered with noprior knowledge beyond the initial URI(bookmark) and set of standardizedmedia types that are appropriate for theintended audience (i.e., expected to beunderstood by any client that might use theAPI). From that point on, all applicationstate transitions must be driven byclient selection of server-providedchoices that are present in the receivedrepresentations or implied by the user’smanipulation of those representations. Thetransitions may be determined (or limitedby) the client’s knowledge of media typesand resource communication mechanisms,both of which may be improved on-the-fly(e.g., code-on-demand).~ Roy Fielding
  • 123RessourcesVerbes HTTPHypermédia0 POXSeulement le niveau3 peut êtreconsidérer commeRESTLe chemin versREST tel que décrispar LeonardRichardson
  • HypermédiaEst la partie de REST qui est le plussouvent oublierRéduit le couplage entre le server et leclient en réduisant le nombre de URIconnue par le clientL’hypermédia est l’aspet qui différencieREST de RPC
  • Hypermédia en HTML
  • Hypermédia en Json
  • HAL (Hypertext Application Language)
  • HAL (Hypertext Application Language)
  • Hypermédia en Json
  • Hypermédia en XML
  • HAL (Hypertext Application Language)http://stateless.co/hal_specification.htmlhttp://hal.codeplex.com/https://github.com/robdmoore/Hal.PlayAround
  • HAL (Hypertext Application Language)Démo
  • Trouver l’erreur!
  • Characteristics recherchéIls suivent les normesLe style est constant et prévisibleLeur URI font ce quils disentIl retourne des Code HTTP pourcommuniquer des erreurs
  • Characteristics recherchéIl ne maintienne pas d’état et il sontrapideLes PUTs sont omnipotentIls retournent uniquement les donnéesnécessairesIls implémenter la pagination pour leslongues listes
  • Characteristics recherchéIls sont entièrement testésLeurs interfaces sont biendocumentéesLeur documentation est toujours tenu àjourIdéalement, ils retournent desmessages légers comme json ouprotobuf
  • Characteristics recherchéIls sont versionnésLimiter les régression au maximumUne fois quun endpoint est publié, ilest préférable de créer un nouveauendpoint que de changer la signaturedun endpoint existant.Les lignes directrices ressemblentfortement à celles du code propre
  • C’est possible
  • Une RESTful Architecture@brisebois runatserver.comAlexandre BriseboisDéveloppeur SéniorRunatserverMontréalWeb ● Touch ● Mobile ●Training