Développer un service REST
Concevoir un service REST : ressources et URI, sens de chaque méthode HTTP, codes de réponse, absence d'état, méthodes sûres et idempotentes.
- 29 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Ressource (REST) : de quoi s'agit-il ?
Voir la réponse
Chose que le service expose et qu'une URI identifie : un client, une commande, la liste des commandes d'un client.
L'URI nomme la chose (
/clients/7/commandes/42), la méthode HTTP dit l'action. Un verbe dans l'URI (/supprimerClient) mélange les deux.Quelle requête crée une commande pour le client 7 dans un service REST bien conçu ?
POST /clients/7/commandesGET /clients/7/commandes/nouvellePUT /clients/7/creerCommandePOST /clients/7/commandes/creer
Voir la réponse
POST /clients/7/commandesL'URI désigne la collection (un nom au pluriel) et
POSTdit « ajoute-y un élément ». Un verbe dans l'URI (creer,creerCommande) ou unGETqui écrit rompent la convention.Dans un service REST, … lit une ressource, … en crée une, … la remplace entièrement et … la supprime.
Voir la réponse
Dans un service REST, GET lit une ressource, POST en crée une, PUT la remplace entièrement et DELETE la supprime.
PATCHcomplète la liste : il modifie seulement les champs envoyés, là oùPUTremplace la ressource entière.Service sans état : de quoi s'agit-il ?
Voir la réponse
Service dont chaque requête contient tout ce qu'il faut pour être traitée : le serveur ne garde rien d'une requête à la suivante sur le client.
N'importe quel serveur peut répondre à n'importe quelle requête, ce qui permet de répartir la charge. Le jeton d'authentification voyage donc dans chaque requête.
Un robot d'indexation parcourt le site et un client disparaît de la base : une route
GET /supprimerClient?id=3existe. Quelle correction applique la convention REST ?- La remplacer par
POST /clients/3avec le mot supprimer dans le corps - La remplacer par
DELETE /clients/3 - Exiger que le robot ajoute l'en-tête
Accept: application/json - Interdire la route aux robots dans le fichier
robots.txt
Voir la réponse
La remplacer par
DELETE /clients/3Les robots, les caches et les navigateurs suivent librement les
GETparce qu'ils sont sûrs.robots.txtn'écarterait que les robots polis, pas un navigateur qui précharge un lien. Une suppression doit passer par une méthode qui ne se déclenche pas toute seule :DELETE.- La remplacer par