La classe lrRequest
La classe lrRequest permet à la fonction WinDev® lancée lors de l’appel à une route REST, de recevoir le contenu de la requête HTTP afin de la traiter, et de renvoyer le résultat à l’appelant.
La classe lrRequest implémente les Membres et Méthodes décrites ci-dessous.
Membre | Type | Description | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Body | chaîne | Corps de la requête. Uniquement renseigné pour les méthodes POST, PUT et PATCH |
|||||||||||||||||||||
Method | chaîne | Méthode appelée par le client REST. Correspond à une des actions supportées par LightREST (classe lrServer):
|
|||||||||||||||||||||
URL | lrURL | Description de l’URL de la requête
|
|||||||||||||||||||||
Proto | chaîne | Version du protocole HTTP | |||||||||||||||||||||
Header | tableau associatif de chaînes | Entêtes (HEADERS) | |||||||||||||||||||||
ContentLength | entier sur 8 octets | Taille de la requête | |||||||||||||||||||||
Host | chaîne | Hôte | |||||||||||||||||||||
PostForm | tableau associatif de chaînes | Contenu du formulaire HTTP | |||||||||||||||||||||
Files | tableau associatif de lrFile | Fichiers attachés à la requête
|
|||||||||||||||||||||
RemoteAddr | chaîne | Adresse IP du client | |||||||||||||||||||||
RequestURI | chaîne | Route appelée | |||||||||||||||||||||
Authentication | lrAuthentication | Authentification du client | |||||||||||||||||||||
Vars | tableau associatif de chaînes | Variables passées dans la Route (entre {}) |
Méthode | Utilisation |
---|---|
GetHeaderValue | Récupère la valeur d’une entête (HEADER) dans la requête REST |
GetRouteValue | Récupère la valeur d’une variable passée dans la route |
GetURLValue | Récupère la valeur d’une variable passée dans l’URL |
Méthode GetHeaderValue(Entête) : chaine
Récupération de la valeur d’une entête HTTP (HEADER) dans la requête envoyée par la client.
Il est également possible d’interroger directement le tableau associatif lrRequest:Header.
Paramètre | Type | Description |
---|---|---|
Variable | Chaîne | Nom de la variable à récupérer dans l’URL |
Retour : Chaine : Valeur correspondant à l’entête demandée. Vide si l’entête est inexistante.
Exemple :
procédure MaProcREST(pRequest est lrRequest) : lrReponse
cValEntete est chaine
oResponse est lrResponse
cValEntete = pRequest:GetRequestHeader("SESSION_ID")
oResponse:Body = "On a reçu le HEADER SESSION_ID="+cValEntete
oResponse:RetCode = lrResponse::StatusOK
oResponse:ContentType = lrResponse::ContentTXT
RENVOYER oResponse
Fonction GetRouteValue(Variable) : chaine
Récupération de la valeur d’une variable passée dans la Route de la requête HTTP.
Il est également possible d’interroger directement le tableau associatif lrRequest:Vars.
Paramètre | Type | Description |
---|---|---|
Variable | Chaîne | Nom de la variable à récupérer dans la route REST (définie entre {} lors de la création de la Route) |
Retour : Chaine : Valeur correspondant à la variable demandée. Vide si l’entête est inexistante.
Exemple :
Soit une route définie comme /client/{id_soc}/{id_client}
On appelle l’URL : http://rest.fr/client/Acme/2468
lrRequest:GetVarValue("id_soc") // retournera "Acme"
lrRequest:GetVarValue("id_client") // retournera "2468"
Méthode GetUrlValue(Variable) : chaine
Récupération de la valeur d’une variable passée dans l’URL de la requête HTTP.
Il est également possible d’interroger directement le tableau associatif lrRequest:URL.QueryValues.
Paramètre | Type | Description |
---|---|---|
Variable | Chaîne | Nom de la variable à récupérer dans l’URL |
Retour : Chaine : Valeur correspondant à la variable demandée. Vide si l’entête est inexistante.
Exemple :
Appel de l’URL http://rest.fr/client?nom=DUP&zipcode=06000
lrRequest:GetUrlValue("nom") // retournera "DUP"
lrRequest:GetUrlValue("zip") // retournera "06000"