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.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. 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/commandes
    • GET /clients/7/commandes/nouvelle
    • PUT /clients/7/creerCommande
    • POST /clients/7/commandes/creer
    Voir la réponse

    POST /clients/7/commandes

    L'URI désigne la collection (un nom au pluriel) et POST dit « ajoute-y un élément ». Un verbe dans l'URI (creer, creerCommande) ou un GET qui é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.

    PATCH complète la liste : il modifie seulement les champs envoyés, là où PUT remplace 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=3 existe. Quelle correction applique la convention REST ?

    • La remplacer par POST /clients/3 avec 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/3

    Les robots, les caches et les navigateurs suivent librement les GET parce qu'ils sont sûrs. robots.txt n'é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.