Utilisation d'une API
Utiliser une API en React ne demande pas de nouvelles notions par rapport à celles que vous connaissez déjà.
Utiliser une API c'est un mélange de :
L'utilisation de fetch
L'utilisation de
useEffectL'utilisation de
useReducer
Utiliser fetch
fetch est la solution par excellence pour appeler une API. Elle est fournie directement par JavaScript, et ne nécessite pas de librairies externes.
Le cours sur fetch est disponible ici.
Un exemple d'utilisation de fetch où l'on appelle une API pour récupérer une série de tâches à effectuer (todos) :
Comment implémenter ça en React ?
Les API peut être utilisée pour plein de choses :
récupérer des données
ajouter des données
modifier des données
...
Pour aujourd'hui nous allons nous concentrer sur la récupération de données.
Nous avions vu dans le cours sur useEffect qu'il servait à intéragir avec des services extérieurs aux composants : une API est un élément extérieur, nous allons donc charger nos données depuis useEffect.
Nous avons vu avec useReducer comment manipuler un state complexe avec les dispatch et actions, nous allons donc l'utiliser pour gérer notre state.
Exemple d'utilisation
Les données
Nous allons utiliser une API : https://dummyjson.com/quotes qui nous renvoie une trentaine de citations sous le format (en JSON) suivant :
Le reducer
Le composant App
Ici pour sécuriser un peu le comportement, nous utilisons async et await qui nous permettent de garantir d'attendre la résolution d'une Promise avant de faire autre chose.
Nous n'avons pas eu le temps de faire le cours détaillé sur async / await donc pour le moment, vous pouvez simplement copier coller cette syntaxe en l'adaptant à votre URL et vos données, il n'y a donc que l'URL et les dispatch qui changent.