Usando apenas o mod_harbour, podemos criar um web service com requisição HTTP GET de forma muito simples. Sem outras libs, frameworks, classes, etc. Só o mod_harbour já nos dá essa possibilidade.
Código: Selecionar todos
function main()
local hGet := {=>} ,;
hRet := {=>} ,;
cPath := AP_GetEnv("DOCUMENT_ROOT")+"/api1/" ,;
cAlias := ""
//
// Setar o content-type para o tipo correto
//
AP_SetContentType( "application/json" )
//
// Testar se o método usado foi o GET
//
if AP_Method() == "GET"
//
// O retorno de AP_GetPairs() é um hash contendo todas as variáveis
//
hGet := AP_GetPairs()
if HHasKey( hGet, "codbarra" ) .and. !empty(hGet["codbarra"])
use (cPath + "produtos") shared new via "DBFCDX"
set index to (cPath + "produtos.cdx")
cAlias := alias()
(cAlias)->(dbSetOrder( 1 ))
if (cAlias)->(dbSeek( hGet["codbarra"] ))
hRet['sucesso'] := .T.
hRet['erro'] := ""
hRet['descpro'] := alltrim((cAlias)->descricao)
else
hRet['sucesso'] := .F.
hRet['erro'] := "Codigo de barra nao encontrado"
endif
else
hRet['sucesso'] := .F.
hRet['erro'] := "Falta informar o código de barras ou nome da variavel esta errado (deve ser 'codbarra')"
endif
?? hb_jsonencode( hRet )
else
?? "Requisição para esse exemplo dever ser GET"
endif
RETURN NIL
Fiz um post em https://dev.to/neoangeiras/criando-uma- ... rbour-40lf com alguns detalhes a mais. A intenção é a criação de mais posts a medida que vou aprendendo/descobrindo mais a esse respeito.
[]s
M.Angeiras
