🗺️ Comprendre l'URI : L'Identifiant Universel du Web et sa Gestion en WLangage
Avez-vous déjà tapé une adresse web dans votre navigateur ou cliqué sur un lien ? Derrière cette action se trouve un concept fondamental du web : l'URI (Uniform Resource Identifier), ou Identifiant Uniforme de Ressource.
Souvent confondu avec l'URL, l'URI est en réalité le terme générique qui permet d'identifier de manière unique n'importe quelle ressource sur Internet ou dans un réseau. C'est la carte d'identité numérique de tout contenu.
I. Les Fondamentaux de l'URI
L'URI est une chaîne de caractères structurée qui a pour but d'identifier une ressource, qu'il s'agisse d'une page web, d'un document, d'un fichier, d'une image, d'un service, ou même d'un concept abstrait.
La fonction principale de l'URI est de permettre à un système de lire l'information, de connaître son emplacement (si l'URI est une URL), et de savoir par quel moyen elle est accessible.
🧭 URI, URL, URN : Quelle est la différence ?
| Type | Signification | Rôle | Exemple |
|---|---|---|---|
| URI | Uniform Resource Identifier | Terme générique. Identifie une ressource (par nom, emplacement, ou les deux). | https://exemple.com/page.html urn:isbn:978-3-16-148410-0 |
| URL | Uniform Resource Locator | Type d'URI qui identifie et localise la ressource. Fournit le moyen d'y accéder (protocole, emplacement). | https://www.google.com/search?q=URI |
| URN | Uniform Resource Name | Type d'URI qui nomme la ressource de manière unique, indépendamment de sa localisation. | urn:isbn:978-3-16-148410-0 |
🏗️ L'Anatomie d'un URI
Un URI peut être décomposé en plusieurs parties selon la syntaxe générique :
scheme://[user:password@]host[:port]/path?query#fragment
- Schéma (scheme) : Indique le protocole (http, https, ftp, mailto, urn).
- Autorité (authority) : Identifie le serveur (hôte, port, utilisateur).
- Chemin (path) : Identifie la ressource spécifique sur le serveur.
- Requête (query) : Transmet des informations supplémentaires non hiérarchiques (après le ?).
- Fragment (fragment) : Désigne une partie spécifique de la ressource (après le #).
II. Gérer les URI avec le WLangage
Le WLangage, utilisé dans les environnements WINDEV, WEBDEV et WINDEV Mobile, intègre nativement la gestion des URI, les considérant comme un type de variable spécifique et non pas seulement comme une simple chaîne de caractères.
1. Le Type de Variable URI
En WLangage, vous déclarez une variable de type URI pour manipuler une adresse physique ou abstraite :
sMonURI est une URI
sMonURI = "https://api.example.com/users/123?action=view#details"
2. Accès et Modification des Composants (Propriétés)
Le moteur WLangage décompose automatiquement l'URI, permettant d'accéder ou de modifier chaque composant via des propriétés simples :
| Propriété WLangage | Composant URI |
|---|---|
| .Schéma | Scheme |
| .Autorité | Authority |
| .Chemin | Path |
| .Requête | Query |
| .Fragment | Fragment |
sMonURI est une URI = "https://api.example.com/users/123?action=view#details"
// Lecture des composants
sProtocole est une chaîne = sMonURI.Schéma // Résultat : "https"
sChemin est une chaîne = sMonURI.Chemin // Résultat : "/users/123"
// Modification d'un composant
sMonURI.Schéma = "http"
sMonURI.Fragment = "top"
// Nouvelle valeur : "http://api.example.com/users/123?action=view#top"
3. Fonctions WLangage Spécifiques
Le WLangage fournit un ensemble de fonctions dédiées à l'interaction avec la ressource identifiée par l'URI, souvent utilisées pour les opérations de réseau ou l'accès aux fichiers (y compris le Cloud) :
| Fonction WLangage | Rôle |
|---|---|
| URIVersFichier | Télécharge le contenu de la ressource (URI) vers un fichier local. |
| URIVersBuffer | Charge le contenu de la ressource dans une variable Buffer (mémoire). |
| FichierVersURI | Envoie le contenu d'un fichier local vers la ressource désignée par l'URI (Upload). |
| URISélecteur | Ouvre une interface utilisateur pour permettre la sélection d'une ressource (fichiers locaux ou Cloud). |
Exemple : URIVersFichier
sAdresseImage est une URI = "https://mon-serveur.com/images/logo.png"
sFichierLocal est une chaîne = fRepDonnées() + "logo.png"
URIVersFichier(sAdresseImage, sFichierLocal, "ProcTéléchargementTerminé")
PROCÉDURE ProcTéléchargementTerminé(sURI est une URI, sCheminLocal est une chaîne)
Info("Le fichier " + sCheminLocal + " a été téléchargé depuis " + sURI.Autorité)
FIN
En maîtrisant le type URI en WLangage, vous disposez d'un outil puissant pour gérer l'identification et l'accès aux ressources de manière multi-plateforme et structurée, simplifiant grandement les tâches réseau et la gestion des liens complexes (comme les Deep Links mobiles).