LightREST

Composant Serveur API REST pour WinDev®
Léger.
Rapide.
Gratuit.
Sans licence Serveur WebDev® (pas de SAAS, pas d’abonnement).

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ètreTypeDescription
EntêteChaîneNom 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 :

Copier
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ètreTypeDescription
EntêteChaîneNom de l’entête HTTP à récupérer dans la requête REST
Sous-entêteChaîneNom 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 :

Copier
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

Copier
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

Copier
lrRequest:GetUrlValue("nom") // retournera "DUP"
lrRequest:GetUrlValue("zip") // retournera "06000"