REST propose une architecture standard pour l'élaboration d'application serveur
Le protocole HTTP offre plusieurs mécanismes permettant de respecter les principes REST en développant un service web respecter les principes REST en développant un service web
La structure des URLs permet d'identifier clairement et de manière uniforme les ressources accessible via le service web.
/products /products?brand=keychron&sort=price-asc /products/B09NLTWKGP /semesters /semesters/A2020 /semesters/A2020/courses /semesters/A2020/courses/420-0Q7-SW /semesters/A2020/courses/420-0Q7-SW/groups /semesters/A2020/courses/420-0Q7-SW/groups/2 /orders/202201012314 /orders/202201012314/invoice
Les verbes HTTP permettent de rendre explicite l'action à appliquer sur une ressource
GET /conversations GET /conversations/9812 GET /conversations/9812/messages POST /conversations/9812/messages { "text": ... } PATCH /messages/987123654 { "text" : ... } PATCH /messages/987123654 { "reaction" : ... } DELETE /messages/456192837
Verbes
200, 201, 202, 204
400, 401, 403, 404, 405, 429
Status Codes
ATTENTION
Il est aussi possible de TOUJOURS retourner un code 200 et d'indiquer l'erreur dans le body de la réponse.
Les headers permettent d'ajouter des informations complémentaires à la communication HTTP, requête ou réponse, identifiés par la structure Clé: Valeur
Clé: Valeur
Content-Length: 742 Content-Type: application/json Content-Type: text/html Content-Disposition: attachment; filename="cat.jpg" Accept: */* Accept: image/* Accept: text/html
Headers
Le mécanisme principal de transfert de données en HTTP est le body des requêtes et réponses. Outre les fichiers bruts (images, zip, etc.), il est judicieux d'uniformiser le format de donnée utilisé.
👉
Il est fréquent de vouloir restreindre l'accès à certaines ressources d'un service web, donc il faut être en mesure d'authentifier qui effectue la requête. On peut mettre en place une technique personnalisée pour la gestion des identifiants, mais le protocole HTTP offre un mécanisme standard qui facilite l'implémentation via les headers.
Réponse initiale
WWW-Authenticate: Basic realm="Zone restreinte!!!"
Requête subséquente
Authorization: Basic ZXRkOnNoYXdp
Les identifiants sont joints par : et encodé en Base64, ex: etd:shawi devient ZXRkOnNoYXdp
:
etd:shawi
ZXRkOnNoYXdp