Toutes les applications ne sont pas Ă©crites dans le mĂȘme langage (Java, .Net, NodeJS, PHP, Ruby, Python...)
Les partenaires n'ont pas forcĂ©ment les mĂȘmes environnements (rĂ©seaux, firewall)
Définition d'une norme de communication, basée sur des standards.
REpresentational
State
Transfert
Principes au coeur du web
Le client indique au serveur ses attentes via des headers HTTP
Accept
Accept-Language
Content-Type
et Content-Language
La RFC 4229 liste les headers possibles.
Le message contient les informations permettant de manipuler l'application
Excellent talk de Julien Topçu
OpenAPI est la spec, Swagger une implémentation
Description des API au format JSON ou YAML : OpenApi
Rendu Web + "Try It" : Swagger
Pokemon APIAffichage de la documentation sous forme de page web
Génération de squelettes clients/serveur
Génération de squelettes clients/serveur
Pas d'implémentation de la part de Spring
1 projet Open Source
springdoc-openapi (doc)
Exposition d'un service REST Spring
/api/pokemon-types/{id}
/api/pokemon-types?orderBy=name
/api/pokemon-types?type=poison
@RequestMapping
: Ă©couter une URI@PathVariable
: récupérer les variables d'URI entre '{}'@RequestParam
: rĂ©cupĂ©rer les paramĂštres de requĂȘte (query-strings '?a=b&c=d')@RequestBody
: rĂ©cupĂ©rer le corps de la requĂȘte/api/pokemon-types
/api/pokemon-types/{id}
/api/pokemon-types?orderBy=name
/api/pokemon-types?type=poison
POST /api/trainers
Classe utilitaire pour effectuer des appels REST
jackson-databind
pour convertir les objets Java en JSON !$> curl