0% ont trouvé ce document utile (0 vote)
5 vues4 pages

Routage Avancé sur ESP8266 avec URI

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)
5 vues4 pages

Routage Avancé sur ESP8266 avec URI

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

Ce programme ne nécessite aucun fichier externe manquant (index.

htm ou autre), car il se


concentre sur les fonctionnalités de routage côté serveur.

🛣️ Programme 9 : Analyse du Routage Avancé (Path


Arguments)

Ce programme est un exemple crucial de la façon d'implémenter un routage dynamique ou


des endpoints de type RESTful sur l'ESP8266. Il utilise des classes spécialisées (UriBraces et
UriRegex) pour capturer des segments de l'URI d'une requête et les utiliser comme variables.

1. Inclusions et Déclarations

Ligne de Code Explication Technique et Focus/Valeur


Rôle

#include Bibliothèque de base pour


<ESP8266WebServer.h> le serveur HTTP.

#include <uri/UriBraces.h> Classe Clé. Permet de Routage paramétré


définir des routes avec des (Simple).
espaces réservés ({})
pour capturer des
segments d'URI.

#include <uri/UriRegex.h> Classe Clé. Permet de Routage paramétré


définir des routes en (Avancé).
utilisant des expressions
régulières (RegEx) pour
une capture de segments
et une validation de format
plus précises.

ESP8266WebServer Instanciation du serveur


server(80); HTTP sur le port 80.

2. Fonction setup() (Initialisation et Routage)

Ligne de Code Explication Technique et Focus/Valeur


Rôle

[Link](WIFI_STA); / Initialisation et attente de la


[Link](ssid, password); connexion en mode
/ while ([Link]() != Station.
WL_CONNECTED)

[Link](F("/"), []() { ... }); Définition d'un gestionnaire Route statique de base.
standard pour l'URI racine
(/).

[Link](UriBraces("/users Routage par accolades. Routage Dynamique


/{}"), []() { ... }); Ce gestionnaire est appelé (Braces). Définit la
pour toute URI structure de l'endpoint.
correspondant au modèle
/users/ suivi d'un seul
segment (e.g., /users/bob
ou /users/42).

String user = Récupération de Extraction de variable


[Link](0); l'Argument de Chemin. La d'URI.
méthode pathArg(index)
est utilisée pour extraire le
segment d'URI capturé par
l'espace réservé {}. L'index
0 fait référence au premier
espace réservé dans le
modèle.

[Link](200, Envoie une réponse


"text/plain", "User: '" + user confirmant l'utilisateur
+ "'"); extrait.
[Link](UriRegex("^\\/use Routage par Expression Routage Avancé (Regex).
rs\\/([0-9]+)\\/devices\\/([0- Régulière. Ce gestionnaire Permet la capture de
9]+)$"), []() { ... }); est appelé uniquement segments multiples avec
pour une URI qui des contraintes de type (ici,
correspond exactement au numérique).
modèle RegEx : /users/ suivi
d'un ou plusieurs chiffres
([0-9]+), puis /devices/
suivi d'un ou plusieurs
chiffres.

String user = Extrait le contenu du Extraction d'Argument 1.


[Link](0); premier groupe de
capture de la RegEx, qui
correspond à l'ID de
l'utilisateur (([0-9]+)).

String device = Extrait le contenu du Extraction d'Argument 2.


[Link](1); deuxième groupe de
capture de la RegEx, qui
correspond à l'ID du
périphérique (([0-9]+)).

[Link](); Démarre l'écoute du


serveur HTTP.

3. Fonction loop() (Exécution)

Ligne de Code Explication Technique et Focus/Valeur


Rôle

[Link](); Gestion des Requêtes. Cœur de la boucle.


Cette méthode est
responsable du décodage
de l'URI de la requête
entrante et de la tentative
de correspondance avec
les modèles de route
définis (/, UriBraces,
UriRegex).

🔍 Rôle des Modèles d'URI


Le rôle principal de ce programme est de migrer au-delà du routage statique (/home, /about)
vers le routage paramétrique (/utilisateurs/42/modifier).
●​ UriBraces : Offre un moyen simple de créer des chemins d'API flexibles où la valeur d'un
segment ({}) est ignorée lors de la correspondance, mais capturée pour être utilisée.
●​ UriRegex : Permet de créer des routes complexes et strictes. Dans l'exemple fourni,
l'expression régulière garantit que les ID d'utilisateur et de périphérique ne contiennent
que des chiffres ([0-9]+). C'est essentiel pour valider le format des données directement
dans la couche de routage.

En résumé, ce programme montre comment construire des endpoints d'API complexes où


les variables (comme un ID d'utilisateur ou un nom) sont directement intégrées dans le chemin
d'accès plutôt que dans des paramètres de requête (comme ?user=bob).

Vous aimerez peut-être aussi