Récupérez la liste des tâches
Objectifs de ce chapitre
- ✔️Récupérez la liste des tâchesRécupérez la liste des tâches du faux serveur API.
Mettez à jour TaskService
Le service HttpClient expose plusieurs fonctions qui vous permettent de réaliser des requêtes HTTP à un serveur. Dans ce chapitre, vous utiliserez la méthode get pour récupérer la liste des tâches depuis le serveur API.
Cette fonction prend le chemin de la route du serveur API comme paramètre : http://localhost:3000/tasks
.
C’est l’URL qu’il interrogera pour obtenir la liste des tâches.
Cette nouvelle méthode getTasks définit la communication avec le serveur API :
- Il fait une requête GET;
- Il attend un tableau d’objets Task en réponse;
- Il communique avec le serveur API à l’URL
http://localhost:3000/tasks
.
🎓 Instructions
-
Mettez à jour le fichier
src/app/task.service.ts
.
Mettez à jour TaskListComponent
Réalisez la mise à jour de TaskListComponent pour qu’il utilise la nouvelle méthode getTasks et renommez la variable tasks en tasks$. Ajouter $
permet de signaler qu’il s’agit d’une Observable.
Pourquoi ? Qu’est-ce qu’une observable ?
tasks était un tableau d’objets Task. Désormais, tasks$ est une observable d’un tableau d’objets Task.
En appelant la fonction getTasks, on obtient une Observable qui émettra la liste des tâches une fois reçue du serveur API.
Pour différencier une valeur de l’observable, la communauté Angular utilise couramment le suffixe $
dans les applications Angular.
🎓 Instructions
-
Mettez à jour le fichier
src/app/task-list/task-list.component.ts
.
Abonnement
L’appel de la fonction getTasks ne déclenchera pas la requête API immédiatement. Comme elle ne se déclenche pas encore, l’observable n’émettra aucune valeur. Déclenchez ce que nous appelons un abonnement à l’observable pour lancer la requête.
Comment s’abonner ?
Il existe plusieurs façons de s’abonner à une observable. Pour la situation donnée, utilisez le pipe async dans le Template HTML.
Comme le pipe date utilisé précédemment, le rôle du pipe async est de transformer les données avant de les afficher. Ici son rôle sera de s’abonner à l’observable et de renvoyer la liste des tâches une fois disponible.
🎓 Instructions
-
Modifiez le fichier
src/app/task-list/task-list.component.html
.
Alternative
L’alternative à l’utilisation du pipe async consiste à s’abonner à l’observable dans le composant.
Cela se fait en appelant la fonction subscribe sur l’observable et en passant une fonction comme paramètre de rappel. Ce rappel sera fait une fois que les données seront disponibles.
Cet abonnement sera utilisé dans la fonction ngOnInit de la classe TaskListComponent.
🎓 Instructions
-
Modifiez le fichier
src/app/task-list/task-list.component.ts
.
Pièges
Bien que l’abonnement à l’observable dans le composant soit une solution valable, il manque certaines optimisations fournies par le pipe async. Cela nécessite également plus de code pour le même résultat.
Effectivement, dans le cas où vous utilisez la souscription à l’observable dans le composant, vous devez penser à vous désabonner. Nous ne verrons pas cette action pour le moment. Vous pouvez échanger avec votre mentor pour plus de détails.
✔️ Ce que vous avez appris
Dans ce chapitre, vous avez appris l’une des fonctionnalités clés d’Angular : comment interroger les données d’un serveur API !