SmarMaker - Documentation
Docs» front:requetes_api

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
front:requetes_api [2025/09/25 14:45] – [Effectuer une requête] paolofront:requetes_api [2025/09/29 16:45] (Version actuelle) – [Effectuer une requête] paolo
Ligne 7: Ligne 7:
  
 Ici, nous nous concentrons uniquement sur l'**API Fetch** mais il existe également des libs comme **Axios** qui ajoute une couche d'abstraction sur **Fetch**, simplifiant la syntaxe, ... Ici, nous nous concentrons uniquement sur l'**API Fetch** mais il existe également des libs comme **Axios** qui ajoute une couche d'abstraction sur **Fetch**, simplifiant la syntaxe, ...
-### Effectuer une requête+### Préparer une requête
  
-Nous avons une application routée avec des pages **Login** et **Home**. Et si on essayait d'effectuer une requête de connexion ?+Nous avons une application routée avec des pages **Login** et **Home**. Et si on essayait de préparer une requête de connexion ?
  
 En ce qui concerne le **Router API**, veuillez vous référer à la documentation **Back**, et pour le traitement des requêtes d'authentification, à celle de **SmartAuth**. En ce qui concerne le **Router API**, veuillez vous référer à la documentation **Back**, et pour le traitement des requêtes d'authentification, à celle de **SmartAuth**.
  
-Pour commencer il faudrait rajouter une fonction qui s'effectue lorsque le formulaire  
 ``` ```
 +const request = {
 +    method: "POST",
 +    body: loginData,
 +    headers: {
 +        Accept: "application/json",
 +        "Content-Type": "application/json",
 +    }
 +};
 +
 +fetch(`${API_URL}/login`, request)
 +    .then(response => response.json())
 +    .then(json => console.log(json.data))
 +    .catch(error => console.error(error));
 +```
 +Pour savoir comment récupérer la variable d'environnement ''API_URL'', veuillez vous référer à la documentation de l'astuce **Utiliser les variables d'environnement**
 +.
 +### Effectuer une requête
 +
 +Il y a deux moyens d'effectuer uen requête api:
 +
 +  * Au sein d'un ''useEffect'' (Documenation [useEffect](https://react.dev/reference/react/useEffect))
 +
 +```
 +useEffect(() => {
 +    // request
 +}, []);
 +```
 +
 +  * Lors d'un événement **React** (''onClick'' d'un ''button'' par exemple)
 +
 +```
 +<button onClick={() => { 
 +    // request
 +}}>
 +    Do an action
 +</button>
 +```
 +
 +Dans notre cas, la requête doit s'effectuer lorsque le formulaire est soumis (lorsque le bouton de soumission est cliqué).
 +
 +Documentation [FormData](https://developer.mozilla.org/fr/docs/Web/API/FormData)
 +
 +```
 +// src/components/pages/Login/index.jsx
 +
 import { Input } from "../form/Input"; import { Input } from "../form/Input";
 +import { API_URL } from "../../../utils/constants/vite;
  
 export const Login = () => { export const Login = () => {
     const handleFormOnSubmit = (e) => {     const handleFormOnSubmit = (e) => {
 +        e.preventDefault() // empêche le comportement par défaut du formulaire
                  
-        // Requête API+        const data = new FormData(e.target) 
 +        const loginData = Object.fromEntries(data.entries()); 
 +         
 +        // request
     };     };
          
Ligne 51: Ligne 100:
 }; };
 ``` ```
 +
 +Nous savons désormais comment fonctionnent les requêtes API. Il s'agirait maintenant d'utiliser les données reçues et notamment de les stocker. On y vient, c'est le prochain point !
SmarMaker - Documentation

Table of Contents


  • SmartMaker
    • SmartAuth
    • Back (PHP)
    • Front (React)
      • Architecture
      • Composants et pages
      • Routage
      • Requêtes Api
      • Stockage de données
      • Traductions
      • Thèmes
      • PWA
      • Astuces
    • SmartCommon
    • HowTo first app
  • Formations
  • Démonstration
  • Afficher la page
  • Anciennes révisions
  • Liens de retour
  • Haut de page
  • S'identifier
front/requetes_api.1758811535.txt.gz · Dernière modification : 2025/09/25 14:45 de paolo