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.
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 |
---|---|---|
Entête | Chaîne | Nom de l’entête HTTP à récupérer dans la requête REST |
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:GetHeaderValue("SESSION_ID")
oResponse:Body = "On a reçu le HEADER SESSION_ID="+cValEntete
oResponse:RetCode = lrResponse::StatusOK
oResponse:ContentType = lrResponse::ContentTXT
RENVOYER oResponse
Méthode GetHeaderSubValue(Entête, Sous Entête) : chaine
Récupération de la valeur d’une sous-entête HTTP (HEADER) dans la requête envoyée par la client. Utile par exemple pour récupérer la valeur d’un header avec valeurs multiples comme Cache-Control.
Paramètre | Type | Description |
---|---|---|
Entête | Chaîne | Nom de l’entête HTTP à récupérer dans la requête REST |
Sous-entête | Chaîne | Nom de la sous-entête HTTP à récupérer dans la requête REST |
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
si pRequest:GetHeaderSubValue("Cache-Control", "no-cache")<>"" alors
oResponse:Body = "Pas de cache demandé !"
sinon
oResponse:Body = "Cache activé"
fin
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.
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.
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"