0% ont trouvé ce document utile (0 vote)
3 vues6 pages

Serveur Web Complet avec LittleFS et REST

Transféré par

philophiloss46
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues6 pages

Serveur Web Complet avec LittleFS et REST

Transféré par

philophiloss46
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Pour le Programme 13 : WebServer.

ino, l'analyse doit considérer quatre fichiers :


1.​ [Link] (Le code principal du programme).
2.​ secrets.h (Contient les identifiants Wi-Fi).
3.​ builtinfiles.h (Contient le HTML des pages intégrées).
4.​ [Link] (Fournit le contexte et la documentation, ignoré pour l'analyse du code).

Ce programme est le plus complet et démontre comment construire un serveur Web riche en
fonctionnalités, capable de servir des fichiers statiques, de gérer des services REST, et
d'effectuer des opérations sur le système de fichiers (téléchargement et suppression).

💾 Programme 13 : Analyse du Serveur Web Complet


(LittleFS + REST)

Ce programme se concentre sur l'utilisation du système de fichiers LittleFS pour stocker et


servir des fichiers statiques, et étend la classe ESP8266WebServer avec des gestionnaires
spécialisés et des services REST personnalisés.

1. Inclusions et Déclarations

Ligne de Code Explication Technique et Focus/Valeur


Rôle

#include <Arduino.h> Bibliothèque de base pour


les fonctions Arduino
(setup, loop, etc.).

#include La classe clé. Serveur


<ESP8266WebServer.h> HTTP de base.

#include "secrets.h" Inclusion d'un fichier Externalisation des


d'en-tête externe secrets.
contenant les identifiants
Wi-Fi (ssid, passPhrase).
#include <FS.h>, Classes Clés. Fournissent Persistance et service de
<LittleFS.h> l'interface de base du fichiers.
système de fichiers et
l'implémentation spécifique
LittleFS.

#define HOSTNAME Définit le nom d'hôte Nom de domaine local.


"webserver" mDNS. L'appareil sera
accessible via
[Link]

#define TIMEZONE Définit le fuseau horaire Synchronisation de


"CET-1CEST,M3.5.0,M10.5. pour l'appel à configTime. l'heure.
0/3"

ESP8266WebServer Instanciation du serveur


server(80); HTTP sur le port 80.

#include "builtinfiles.h" Inclusion des pages HTML Contenu web intégré.


statiques intégrées (ex:
uploadContent).

2. Fonctions de Services (APIs REST)

Le programme utilise des fonctions pour implémenter des services REST personnalisés :
●​ void handleListFiles() : Renvoie une liste des fichiers présents dans le système de
fichiers LittleFS au format JSON (une API REST).
●​ void handleSysInfo() : Renvoie des informations d'état du système (mémoire disponible,
flash, etc.) au format JSON (une autre API REST).
○​ Valeur : Ces fonctions montrent comment implémenter des endpoints d'API qui
renvoient des données structurées pour une application frontend, au lieu de renvoyer
du HTML.

3. Classe FileServerHandler (Manipulation des Fichiers)


Cette section est cruciale car elle montre une technique d'extension avancée du serveur :
l'implémentation d'un gestionnaire de requête personnalisé (RequestHandler).
●​ class FileServerHandler : public RequestHandler : Définit une nouvelle classe qui
hérite de la classe de base RequestHandler. Elle est spécialisée dans la gestion des
opérations de POST et DELETE sur les fichiers.
○​ Valeur : L'héritage permet de créer des gestionnaires plus complexes que ceux
définis par [Link](), en particulier ceux qui traitent le corps de la requête ou
doivent gérer plusieurs méthodes HTTP.

Méthode de Rôle Technique Focus/Valeur


FileServerHandler

bool Filtre de Requête. Vérifie Logique de routage


canHandle(HTTPMethod si la méthode HTTP est avancée.
method, String uri) POST (pour le
téléchargement) ou
DELETE (pour la
suppression) et si l'URI est
valide. Si c'est le cas, elle
retourne true et le serveur
appelle handle().

bool Exécution du Service. Implémentation CRUD


handle(ESP8266WebServer Appelé si canHandle est (Create/Delete).
& server, HTTPMethod vrai. Utilise des instructions
method, String uri) conditionnelles pour
déterminer si l'opération
est un POST (géré par
canUpload et upload) ou
un DELETE (exécution de
[Link](uri)).

bool canUpload(String uri) Début de l'Upload. Vérifie Initialisation du


si l'URI de destination est téléchargement.
valide pour un nouveau
fichier.

void upload(String uri, Gestion du Flux d'Upload. Gestion des données


HTTPUpload& upload) Cette méthode est appelée multi-parties.
plusieurs fois par la
bibliothèque
ESP8266WebServer pour
traiter les différentes
étapes d'un
téléchargement de fichier
(début, écriture des
données
(UPLOAD_FILE_WRITE), fin).
Elle gère l'ouverture,
l'écriture par morceaux et
la fermeture du fichier sur
LittleFS.

4. Configuration (setup)

Ligne de Code Explication Technique et Focus/Valeur


Rôle

[Link](); Initialisation du système de Démarrage de la


fichiers. persistance.

[Link](HOSTNA Configuration du nom Configuration du réseau et


ME); et d'hôte et synchronisation du temps.
configTime(TIMEZONE, de l'heure NTP (essentiel
"[Link]"); pour les journaux et les
transactions horodatées).

[Link]("/$[Link]", Enregistre une route pour Route statique de la page


...) servir la page HTML d'interface.
d'upload intégrée
(uploadContent).

[Link]("/", HTTP_GET, Redirection Logique d'accueil.


handleRedirect); conditionnelle. Si
l'utilisateur demande la
racine (/), il est redirigé
vers /[Link] (s'il existe)
ou vers la page /[Link]
(par défaut).

[Link]("/$list", Enregistrement des Points d'API.


HTTP_GET, handleListFiles); services REST
et [Link]("/$sysinfo", personnalisés.
HTTP_GET, handleSysInfo);

[Link](new Enregistrement du Extension du serveur.


FileServerHandler()); Gestionnaire
Personnalisé. Ajoute
l'instance du
FileServerHandler à la
chaîne de traitement du
serveur.

[Link](true); Fonctionnalités HTTP Optimisation et


et [Link](true); Avancées. Active le compatibilité.
support CORS (pour
permettre aux applications
web d'autres domaines
d'accéder aux APIs) et les
ETags (pour la mise en
cache efficace des fichiers
côté client).

[Link]("/", Gestionnaire Statique par Service de fichiers par


LittleFS, "/"); Défaut. Dit au serveur de défaut.
servir tous les fichiers
(GET) du système de
fichiers LittleFS, en utilisant
le répertoire racine ("/")
pour les requêtes non
routées.

[Link](...) Enregistre un gestionnaire Gestion des erreurs 404.


pour les URI qui n'ont pas
été traitées par aucun des
autres gestionnaires (y
compris serveStatic et
FileServerHandler).

5. Fonction loop() (Exécution)

Ligne de Code Explication Technique et Focus/Valeur


Rôle

[Link](); Routine de maintenance Cœur de l'exécution.


pour traiter les requêtes
HTTP.

Ce programme est un modèle d'application complète, montrant comment combiner les


fonctionnalités de base du serveur, les services REST personnalisés, et l'extension avancée
avec des gestionnaires de requêtes personnalisés pour le CRUD sur le système de fichiers.

Vous aimerez peut-être aussi