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