LightREST

Composant Serveur API REST pour WinDev®
Léger.
Rapide.
Gratuit.
Sans licence Serveur.

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.

MembreTypeDescription
BodychaîneCorps de la requête.
Uniquement renseigné pour les méthodes POST, PUT et PATCH
MethodchaîneMéthode appelée par le client REST.
Correspond à une des actions supportées par LightREST (classe lrServer):

ConstanteDescription
MethodGETMéthode REST “GET”
MethodPOSTMéthode REST “POST”
MethodPUTMéthode REST “PUT”
MethodDELETEMéthode REST “DELETE”
MethodHEADMéthode REST “HEAD”
MethodPATCHMéthode REST “PATCH”
MethodOPTIONSMéthode REST “OPTIONS”
URLlrURLDescription de l’URL de la requête
MembreTypeDescription
SchemeChainePréfixe de l’URL (généralement http:// ou https://)
UserChaineUtilisateur
HostChaineHôte
PathChaineChemin d’appel
RawPathChaineChemin d’appel brut
QueryValuesTableau Associatif de ChainesVariables contenues dans l’URL
ProtochaîneVersion du protocole HTTP
Headertableau associatif de chaînesEntêtes (HEADERS)
ContentLengthentier sur 8 octetsTaille de la requête
HostchaîneHôte
PostFormtableau associatif de chaînesContenu du formulaire HTTP
Filestableau associatif de lrFileFichiers attachés à la requête
MembreTypeDescription
NameChaineNom du fichier
ContentBufferContenu du fichier
RemoteAddrchaîneAdresse IP du client
RequestURIchaîneRoute appelée
AuthenticationlrAuthenticationAuthentification du client
Varstableau associatif de chaînesVariables passées dans la Route (entre {})
MéthodeUtilisation
GetHeaderValueRécupère la valeur d’une entête (HEADER) dans la requête REST
GetRouteValueRécupère la valeur d’une variable passée dans la route
GetURLValueRé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ètreTypeDescription
VariableChaîneNom 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ètreTypeDescription
VariableChaîneNom 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ètreTypeDescription
VariableChaîneNom 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"