WX LightREST

LightREST: A classe lrRequest

A classe lrRequest permite que a função WinDev® iniciada durante a chamada a uma rota REST receba o conteúdo da requisição HTTP para processá-la e envie o resultado de volta ao solicitante.

A classe lrRequest implementa os Membros e Métodos descritos abaixo.

Membros

Membro Tipo Descrição
Body string Corpo da requisição. Preenchido apenas para os métodos POST, PUT e PATCH
Method string Método chamado pelo cliente REST. Corresponde a uma das ações suportadas pelo LightREST (classe lrServer)
URL lrURL Descrição da URL da requisição
Proto string Versão do protocolo HTTP
Header matriz associativa de strings Cabeçalhos (HEADERS)
ContentLength inteiro de 8 bytes Tamanho da requisição
Host string Host
PostForm matriz associativa de strings Conteúdo do formulário HTTP
Files matriz associativa de lrFile Arquivos anexados à requisição
RemoteAddr string Endereço IP do cliente
RequestURI string Rota chamada
Authentication lrAuthentication Autenticação do cliente
Vars matriz associativa de strings Variáveis passadas na Rota (entre {})

Métodos

GetHeaderValue(Cabeçalho) : string

Recuperação do valor de um cabeçalho HTTP (HEADER) na requisição enviada pelo cliente.

Também é possível consultar diretamente a matriz associativa lrRequest:Header.

Parâmetro Tipo Descrição
Cabeçalho String Nome do cabeçalho HTTP a ser recuperado na requisição REST

Retorno: String: Valor correspondente ao cabeçalho solicitado. Vazio se o cabeçalho não existir.

Exemplo:

procedimento MinhaProcREST(pRequest é lrRequest) : lrResponse
    cValCabecalho é cadeia
    oResponse é lrResponse
    
    cValCabecalho = pRequest:GetHeaderValue("SESSION_ID")
    oResponse:Body = "Recebemos o HEADER SESSION_ID="+cValCabecalho
    oResponse:RetCode = lrResponse::StatusOK
    oResponse:ContentType = lrResponse::ContentTXT
    
    RETORNA oResponse

GetHeaderSubValue(Cabeçalho, SubCabeçalho) : string

Recuperação do valor de um subcabeçalho HTTP (HEADER) na requisição enviada pelo cliente. Útil, por exemplo, para recuperar o valor de um cabeçalho com valores múltiplos como Cache-Control.

Parâmetro Tipo Descrição
Cabeçalho String Nome do cabeçalho HTTP a ser recuperado na requisição REST
SubCabeçalho String Nome do subcabeçalho HTTP a ser recuperado na requisição REST

Retorno: String: Valor correspondente ao cabeçalho solicitado. Vazio se o cabeçalho não existir.

Exemplo:

procedimento MinhaProcREST(pRequest é lrRequest) : lrResponse
    cValCabecalho é cadeia
    oResponse é lrResponse
    
    se pRequest:GetHeaderSubValue("Cache-Control", "no-cache")<>"" então
        oResponse:Body = "Cache desativado solicitado!"
    senão
        oResponse:Body = "Cache ativado"
    fim
    
    oResponse:RetCode = lrResponse::StatusOK
    oResponse:ContentType = lrResponse::ContentTXT
    
    RETORNA oResponse

GetRouteValue(Variável) : string

Recuperação do valor de uma variável passada na Rota da requisição HTTP.

Também é possível consultar diretamente a matriz associativa lrRequest:Vars.

Parâmetro Tipo Descrição
Variável String Nome da variável a ser recuperada na rota REST (definida entre {} durante a criação da Rota)

Retorno: String: Valor correspondente à variável solicitada. Vazio se a variável não existir.

Exemplo:

Seja uma rota definida como /cliente/{id_emp}/{id_cliente}

Chamamos a URL: http://rest.fr/cliente/Acme/2468

lrRequest:GetVarValue("id_emp")    // retornará "Acme"
lrRequest:GetVarValue("id_cliente") // retornará "2468"

GetUrlValue(Variável) : string

Recuperação do valor de uma variável passada na URL da requisição HTTP.

Também é possível consultar diretamente a matriz associativa lrRequest:URL.QueryValues.

Parâmetro Tipo Descrição
Variável String Nome da variável a ser recuperada na URL

Retorno: String: Valor correspondente à variável solicitada. Vazio se a variável não existir.

Exemplo:

Chamada da URL http://rest.fr/cliente?nome=DUP&cep=06000

lrRequest:GetUrlValue("nome") // retornará "DUP"
lrRequest:GetUrlValue("cep")  // retornará "06000"