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
front:requetes_api [2025/09/29 16:45] – [Effectuer une requête] paolofront:requetes_api [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1
Ligne 1: Ligne 1:
-# Requêtes Api 
  
-Documentation [API Fetch](https://developer.mozilla.org/fr/docs/Web/API/Fetch_API)   
-Documentation [Axios](https://axios-http.com/) 
- 
-Pour effectuer des requêtes serveur directement depuis le navigateur, **JavaScript** met à disposition l'**API Fetch**. Celle-ci permet d'effectuer des opérations telles que **GET**, **POST**, **PUT**, **DELETE**, ... de manière totalement asynchrone. 
- 
-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, ... 
-### Préparer une requête 
- 
-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**. 
- 
-``` 
-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 { API_URL } from "../../../utils/constants/vite; 
- 
-export const Login = () => { 
-    const handleFormOnSubmit = (e) => { 
-        e.preventDefault() // empêche le comportement par défaut du formulaire 
-         
-        const data = new FormData(e.target) 
-        const loginData = Object.fromEntries(data.entries()); 
-         
-        // request 
-    }; 
-     
-    return ( 
-        <div className="fixed inset-0 bg-white flex justify-center items-center p-10"> 
-            <form 
-                onSubmit={handleFormOnSubmit} 
-                className="flex flex-col gap-6" 
-            > 
-                <Input 
-                    id="email" 
-                    name="email" 
-                    label="Adresse email" 
-                    type="email" 
-                    placeholder="Tapez votre adresse mail ici..." 
-                /> 
-                <Input 
-                    id="password" 
-                    name="password" 
-                    label="Mot de passe" 
-                    type="password" 
-                    placeholder="●●●●●●●●" 
-                /> 
-                <button className="shadow-md bg-blue-500 text-white font-semibold text-xl uppercase tracking-wide rounded-full px-8 py-4 active:brightness-90 duration-100"> 
-                    Connexion 
-                </button> 
-            </form> 
-        </div> 
-    ); 
-}; 
-``` 
- 
-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 ! 
Made with ❤ by CAP-REL · SmartMaker · GNU AGPL v3+
Code source · Faire un don
SmarMaker - Documentation

Table of Contents

  • SmartAuth
  • SmartMaker - Back (PHP)
    • Mapping Dolibarr - React
  • SmartMaker - Front (React)
    • Animations de pages
    • Architecture
    • Astuces
    • Calendar
    • Composants et pages
    • Configuration du Provider
    • Debug et Logs
    • Hooks SmartCommon
    • PWA (Progressive Web App)
    • Requêtes API
    • Routage
    • SmartCommon
    • Stockage de données
    • Synchronisation offline
    • Thèmes
    • Traductions
  • HowTo - Pas à pas - Votre première application
    • Développement PHP (back)
    • Développement React (front)
    • Première étape : Module Builder Dolibarr
    • SmartAuth
    • SmartBoot : Un squelette prêt à l'emploi
  • Formation SmartMaker
    • Module 1 : Fondamentaux JavaScript ES6+
      • Chapitre 1 : Variables et Scope
      • Chapitre 2 : Fonctions
      • Chapitre 3 : Programmation Asynchrone
      • Chapitre 4 : Modules ES6
    • Module 2 : Introduction à React
      • Chapitre 1 : Philosophie React
      • Chapitre 2 : JSX
      • Chapitre 3 : Composants
    • Module 3 : Hooks React Fondamentaux
      • Chapitre 1 : useState
      • Chapitre 2 : useEffect
      • Chapitre 3 : useRef
      • Chapitre 4 : useContext
    • Module 4 : React Avancé
      • Chapitre 1 : useCallback et useMemo
      • Chapitre 2 : Custom Hooks
      • Chapitre 3 : Redux et Redux Toolkit
    • Module 5 : Architecture SmartMaker
      • Chapitre 1 : Structure du projet
      • Chapitre 2 : Configuration
      • Chapitre 3 : Flux de données
    • Module 6 : SmartCommon - Composants
      • Chapitre 1 : Mise en page
      • Chapitre 2 : Navigation
      • Chapitre 3 : Formulaires
      • Chapitre 4 : Affichage
    • Module 7 : SmartCommon - Hooks
      • Chapitre 1 : useApi
      • Chapitre 2 : Gestion d'état
      • Chapitre 3 : Hooks utilitaires
      • Chapitre 4 : Synchronisation Offline
    • Module 8 : Backend API (PHP)
      • Chapitre 1 : Routage
      • Chapitre 2 : Controllers
      • Chapitre 3 : Mappers
      • Extrafields et formulaires dynamiques
    • Module 9 : Intégration complète
      • Chapitre 1 : Backend
      • Chapitre 2 : Frontend
      • Chapitre 3 : Déploiement
    • Module 10 : Fonctionnalités avancées
      • Chapitre 1 : Mode offline
      • Chapitre 2 : Internationalisation (i18n)
      • Chapitre 3 : Autres fonctionnalités
    • Module 11 : Bonnes pratiques
  • Démonstration
  • Start
  • Composants et pages