Conseils

Comprendre l'URI : L'Identifiant Universel du Web et sa Gestion en WLangage

🗺️ 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).