Consommer un service web
Appeler un service web depuis un programme : appel asynchrone, promesse, lecture de la réponse, erreurs HTTP, délai dépassé, jeton d'authentification, pagination.
- 25 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
Client HTTP : de quoi s'agit-il ?
Voir la réponse
Partie d'un programme qui construit une requête (URL, méthode, en-têtes, corps), l'envoie à un serveur et lit la réponse.
Navigateur,
curl,fetchen JavaScript,requestsen Python : ce sont tous des clients HTTP. Le serveur ne voit que la requête, pas le langage qui l'a écrite.Dans quel ordre ce programme affiche-t-il les lettres, une fois que le serveur a répondu ?
```javascript
console.log("A");
fetch(url).then(() => console.log("B"));
console.log("C");`A,C,BA,B,CB,A,CC,A,B
Voir la réponse
A,C,Bfetchrend la main tout de suite avec une promesse : le programme continue et afficheC. La fonction passée à.thenne s'exécute qu'après la fin du code en cours, quand la réponse est là.Dans une fonction déclarée …, le mot-clé … attend qu'une promesse soit résolue avant de passer à la ligne suivante, sans bloquer le reste du programme.
Voir la réponse
Dans une fonction déclarée async, le mot-clé await attend qu'une promesse soit résolue avant de passer à la ligne suivante, sans bloquer le reste du programme.
awaitn'existe que dans une fonctionasync(ou au niveau supérieur d'un module). Pendant l'attente, le programme exécute le code qui suit l'appel de la fonction.Appel asynchrone : de quoi s'agit-il ?
Voir la réponse
Appel qui rend la main tout de suite et dont le résultat arrive plus tard, pendant que le programme continue.
Une réponse réseau prend des dizaines de millisecondes ou plus ; attendre sur place figerait l'interface. Le code qui dépend de la réponse est exécuté à son arrivée.
Un appel répond
401 Unauthorizeddepuis ce matin alors que le code n'a pas changé. Quelle est la cause la plus probable et la solution ?- Le serveur est en panne : réessayer en boucle jusqu'à ce qu'il réponde
- L'URL est incorrecte : ajouter une barre oblique à la fin
- Le jeton a expiré : en obtenir un autre
- La méthode est mauvaise : passer de
GETàPOST
Voir la réponse
Le jeton a expiré : en obtenir un autre
401dit « je ne sais pas qui tu es » : identifiants absents, faux ou périmés. Un jeton expiré est le cas le plus courant quand rien n'a changé côté code. Une panne donnerait un5xx, une mauvaise URL un404.