Organisation API & Hooks

Le projet sépare les appels réseau et la logique React grâce à deux dossiers principaux : api/ et hooks/.

/api
/hooks
    

1. Dossier api/

Contient toutes les fonctions qui communiquent avec le backend. Chaque fichier correspond à une ressource ou un ensemble de routes.

// api/clientApi.js
import axios from "axios";

export const getClientById = async (id) => {
  const response = await axios.get(`http://localhost:8000/client/${id}`);
  return response.data;
};
    

2. Dossier hooks/

Contient les custom hooks React qui utilisent les fonctions du dossier api/. Ils gèrent le chargement, les erreurs, le cache et adaptent les données pour les composants.

// hooks/useClient.js
import { useQuery } from "@tanstack/react-query";
import { getClientById } from "../api/clientApi";

export const useClient = (id) => {
  return useQuery({
    queryKey: ["client", id],
    queryFn: () => getClientById(id),
  });
};
    

3. Pourquoi séparer api/ et hooks/ ?

💡 Astuce : chaque ressource de l'API doit avoir ses hooks dédiés pour garder une architecture claire et maintenable.

Résumé

  1. api/ : centralise toutes les requêtes HTTP pour les données backend.
  2. hooks/ : pont entre l'API et React, gère états, cache et intégration avec TanStack Query.