WX LightREST

Constantes de Métodos da classe lrServer

A classe lrServer do LightREST disponibiliza várias constantes que representam os métodos HTTP comuns utilizados em APIs REST. Estas constantes são usadas principalmente ao definir rotas com o método AddRoute.

Constantes de Métodos

Constante Descrição
MethodGET Método REST "GET" - Utilizado para recuperar recursos
MethodPOST Método REST "POST" - Utilizado para criar novos recursos
MethodPUT Método REST "PUT" - Utilizado para atualizar recursos existentes (substituição completa)
MethodDELETE Método REST "DELETE" - Utilizado para excluir recursos
MethodHEAD Método REST "HEAD" - Similar ao GET, mas retorna apenas os cabeçalhos, sem o corpo da resposta
MethodPATCH Método REST "PATCH" - Utilizado para atualizar parcialmente um recurso
MethodOPTIONS Método REST "OPTIONS" - Utilizado para obter informações sobre os métodos disponíveis para um recurso

Como Utilizar

Estas constantes são utilizadas ao adicionar rotas ao servidor LightREST com o método AddRoute. O formato geral de uso é:

oServer:AddRoute(Rota, lrServer::NomeDaConstanteMethod, ProcedimentoREST)

Exemplo de uso:

oServer é lrServer

// Rota que responde a requisição GET
oServer:AddRoute("/clientes", lrServer::MethodGET, pg_ListarClientes)

// Rota que responde a requisição POST
oServer:AddRoute("/clientes", lrServer::MethodPOST, pg_AdicionarCliente)

// Rota que responde a requisição PUT
oServer:AddRoute("/clientes/{id}", lrServer::MethodPUT, pg_AtualizarCliente)

// Rota que responde a requisição DELETE
oServer:AddRoute("/clientes/{id}", lrServer::MethodDELETE, pg_ExcluirCliente)

// Inicia o servidor
oServer:IPAndPort = "0.0.0.0:9000"
(bStartOK, cErrMess) = oServer:Start()

Observações importantes

É possível definir várias rotas com o mesmo caminho URL, mas com diferentes métodos HTTP. Isso permite implementar operações CRUD (Create, Read, Update, Delete) utilizando a mesma URL base, mas com diferentes métodos HTTP, seguindo as boas práticas de design de API REST.

Por exemplo, a URL "/clientes" com método GET poderia listar todos os clientes, enquanto a mesma URL com método POST poderia adicionar um novo cliente.

Suporte a CORS

O LightREST suporta automaticamente respostas a requisições OPTIONS para CORS (Cross-Origin Resource Sharing). Ao configurar cabeçalhos CORS globais com o método SetGlobalOptionsHeaders, o LightREST responderá automaticamente às requisições OPTIONS, independentemente da rota específica.

No entanto, também é possível implementar manualmente o tratamento de requisições OPTIONS para rotas específicas utilizando a constante MethodOPTIONS:

Exemplo de implementação manual de CORS:

// Definição de uma rota específica para OPTIONS
oServer:AddRoute("/api/dados", lrServer::MethodOPTIONS, pg_OpcoesAPI)

// Procedimento que trata a requisição OPTIONS
PROCEDIMENTO pg_OpcoesAPI(pRequest é lrRequest) : lrResponse
    oResponse é lrResponse
    
    oResponse:SetHeaderValue("Access-Control-Allow-Origin", "*")
    oResponse:SetHeaderValue("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE")
    oResponse:SetHeaderValue("Access-Control-Allow-Headers", "Content-Type, Authorization")
    
    oResponse:Status = lrResponse::StatusOK
    oResponse:ContentType = lrResponse::ContentTXT
    oResponse:Body = ""
    
    RETORNA oResponse
FIM