...
Classe: FWRest
Descrição
Exemplo
user Function tstFwRestTest()Local oRestClient := FWRest():New("http://code.google.com")//)oRestClient:setPath("/p/json-path/")If oRestClient:Get() ConOut(oRestClient:GetResult())Else conout(oRestClient:GetLastError())EndifReturnExemplo de envio de arquivo .gz
Clique para visualizar o exemplo Cloak |
---|
|
#include "protheus.ch"
/*/{Protheus.doc} x16165
Função para post na API /api/batch/contratos em
https:
@sample U_x16165()
@author Daniel Mendes
@since 22/03/2019
@version 1.0
/*/
user function x16165()
local oRestClient as object
local cUrl as char
local cPath as char
local aHeadOut as array
local oFile as object
cUrl := "https:cPath := "/api/batch/contratos"
aHeadOut := {}
Aadd(aHeadOut, "Authorization: Basic " + Encode64("app01:fTdUlDgdQQ4MRQhLahykiKhON6k97Zfly5SV6fwpa5zCE"))
Aadd(aHeadOut, "Content-Type: application/json")
Aadd(aHeadOut, "Content-Encoding: gzip")
oFile := FwFileReader():New("\contratos_20190316.gz")
if oFile:Open()
oRestClient := FWRest():New(cUrl)
oRestClient:SetPath(cPath)
oRestClient:SetPostParams(Encode64(oFile:FullRead()))
oFile:Close()
if oRestClient:Post(aHeadOut)
showResult(oRestClient:GetResult())
else
showResult(oRestClient:GetLastError())
endif
FWFreeVar(@oRestClient)
endif
FreeObj(oFile)
return
/*/{Protheus.doc} showResult
Exibe o resultado do método POST, sendo em console ou tela
@param cValue String contendo o conteúdo que será exibido
@sample showResult("Teste")
@author Daniel Mendes
@since 22/03/2019
@version 1.0
/*/
static function showResult(cValue)
if IsBlind()
Conout(cValue)
else
MsgInfo(cValue)
endif
return |
Painel |
---|
NewSintaxe FWREST():New(<cHost >)-> NIL
Descrição Construtor
Parâmetros Nome | Tipo | Descrição | Default | Obrigatório | Referência | cHost | Caracteres | Endereço do Host que iremos fazer o consumo do REST |
| X |
|
|
Painel |
---|
SetPathSintaxe FWREST():SetPath(<cPath >)-> NIL
Descrição Informa o path aonde será feito a requisição
Parâmetros Nome | Tipo | Descrição | Default | Obrigatório | Referência | cPath | Caracteres | Path do caminho da requisição |
| X |
|
|
Painel |
---|
GetSintaxe FWREST():Get(<aHeadStr >, <cGetParam>)-> lOK
Descrição Efetua o Comando Get, no Host e Path informados anteriormente. Utilize o método getResult para pegar o resultado Ou o método GetLastError para verificar o erro.
Parâmetros Nome | Tipo | Descrição | Default | Obrigatório | Referência | aHeadStr | Array | Array com parâmetros do head |
| X |
| cGetParam | Caracteres | Indica a lista de strings de parâmetros que serão enviadas ao servidor HTTP, através da URI | "" |
|
|
Retorno lOK Retorna .T. se o Get retornar o HTTP code 200.
|
Painel |
---|
GetResultSintaxe FWREST():GetResult()-> cResult
Descrição Retorna o ultimo conteúdo valido retornado pela uma chamada ao método Get ou Post
Retorno cResult Resultado da Operação |
Painel |
---|
GetLastErrorSintaxe FWREST():GetLastError()-> cErro
Descrição Retorna o ultimo erro retornado pela uma chamada ao método Get ou Post
Retorno cErro Erro da Operação |
Painel |
---|
PostSintaxe FWREST():Post(<aHeadStr >)-> lOK
Descrição Efetua o Comando POST, no Host e Path informados anteriormente. Utilize o método getResult para pegar o resultado Ou o método GetLastError para verificar o erro.
Parâmetros Nome | Tipo | Descrição | Default | Obrigatório | Referência | aHeadStr | Array | Array com parâmetros do head |
| X |
|
Retorno lOK Retorna .T. se conseguir fazer a conexão.
|
Painel |
---|
SetPostParamsSintaxe FWREST():SetPostParams(<cParams >)-> NIL
Descrição Seta a string de parâmetro do Post
Parâmetros Nome | Tipo | Descrição | Default | Obrigatório | Referência | cParams | Caracteres | Parâmetros do Post |
| X |
|
|
Painel |
---|
PutSintaxe FWREST():Put(<aHeadStr >, <cPayLoad>)-> lOK
Descrição Efetua o Comando Put, no Host e Path informados anteriormente. Utilize o método getResult para pegar o resultado Ou o método GetLastError para verificar o erro.
Parâmetros Nome | Tipo | Descrição | Default | Obrigatório | Referência | aHeadStr | Array | Array com parâmetros do head |
| X |
| cPayLoad | Caracteres | Corresponde à StringList de parâmetros a serem enviados ao servidor HTTP | "" |
|
|
Retorno lOK Retorna .T. se o Get retornar o HTTP code 200 ou 201.
|
Painel |
---|
DeleteSintaxe FWREST():Delete(<aHeadStr >, <cPayLoad>)-> lOK
Descrição Efetua o Comando DELETE, no Host e Path informados anteriormente. Utilize o método getResult para pegar o resultado Ou o método GetLastError para verificar o erro.
Parâmetros
Nome | Tipo | Descrição | Default | Obrigatório | Referência | aHeadStr | Array | Array com parâmetros do head |
| X |
| cPayLoad | Caracteres | Corresponde à StringList de parâmetros a serem enviados ao servidor HTTP | "" |
|
|
Retorno lOK Retorna .T. se o Get retornar o HTTP code 200 ou 201.
|
Painel |
---|
SetChkStatus
Sintaxe FWRest():SetChkStatus(lChk)-> Nil Descrição Seta a variável de controle de checagem do HTTP Code, onde se informado falso, apenas retornamos o lOk como true para indicar que realizamos a conexão, ficando a critério do responsável validar o HTTP Code retornado pela requisição.
Parâmetros Nome | Tipo | Descrição | Default | Obrigatório | Referência | lChk | Lógico | Variável de decisão sobre quem irá checar o retorno do HTTP Code | .T. |
|
|
Retorno Nil
Informações |
---|
Método disponível a partir da Release 23 do Protheus 12. |
|
Painel |
---|
GetChkStatusSintaxe FWRest():GetChkStatus()->lChk Descrição Retorna o conteúdo do parâmetro lChkStatusCode que será utilizado nos métodos Get, Post, Put e Delete onde é feito a decisão de quem irá tratar o HTTP Code.
Retorno lChkStatusCode - Variável de decisão de quem trata a checagem de HTTP Code Informações |
---|
Método disponível a partir da Release 23 do Protheus 12. |
|
Painel |
---|
GetHTTPCodeSintaxe FWRest():GetHTTPCode() Descrição Método que retorna o HTTPCode da requisição.
Retorno cResult – Retorno HTTP Code da requisição Informações |
---|
Método disponível a partir da Release 23 do Protheus 12. |
|
Painel |
---|
SetGetParamsSintaxe FWRest():SetGetParams(cGetParams) Descrição Efetua o set de uma string de parâmetros, do tipo GET, que serão enviados ao servidor HTTP através da URI.
Parâmetros Nome | Tipo | Descrição | Default | Obrigatório | Referência | cGetParams | Charactere | String contendo o valor do parâmetro GET, utilizado na URI |
| X |
|
Informações |
---|
Método disponível a partir da LIB 20201009 |
|
Exemplo:
Bloco de código |
---|
|
user function tstFwRestTest()
local oRestClient as object
oRestClient := FWRest():New("http://code.google.com")
oRestClient:setPath("/p/json-path/")
if oRestClient:Get()
ConOut(oRestClient:GetResult())
else
ConOut(oRestClient:GetLastError())
endif
return |
Exemplo de envio de arquivo .gz:
Bloco de código |
---|
|
#include "protheus.ch"
//-------------------------------------------------------------------
/*/{Protheus.doc} x16165
Função para post na API /api/batch/contratos em
https://seusite.com.br, utilizando da classe
@sample U_x16165()
@author Daniel Mendes
@since 22/03/2019
@version 1.0
/*/
//-------------------------------------------------------------------
user function x16165()
local oRestClient as object
local cUrl as char
local cPath as char
local aHeadOut as array
local oFile as object
cUrl := "https://seusite.com.br"
cPath := "/api/batch/contratos"
aHeadOut := {}
Aadd(aHeadOut, "Authorization: Basic " + Encode64("app01:fTdUlDgdQQ4MRQhLahykiKhON6k97Zfly5SV6fwpa5zCE"))
Aadd(aHeadOut, "Content-Type: application/json")
Aadd(aHeadOut, "Content-Encoding: gzip")
oFile := FwFileReader():New("\contratos_20190316.gz")
if oFile:Open()
oRestClient := FWRest():New(cUrl)
oRestClient:SetPath(cPath)
oRestClient:SetPostParams(Encode64(oFile:FullRead()))
oFile:Close()
if oRestClient:Post(aHeadOut)
showResult(oRestClient:GetResult())
else
showResult(oRestClient:GetLastError())
endif
FWFreeVar(@oRestClient)
endif
FreeObj(oFile)
return
//-------------------------------------------------------------------
/*/{Protheus.doc} showResult
Exibe o resultado do método POST, sendo em console ou tela
@param cValue String contendo o conteúdo que será exibido
@sample showResult("Teste")
@author Daniel Mendes
@since 22/03/2019
@version 1.0
/*/
//-------------------------------------------------------------------
static function showResult(cValue)
if IsBlind()
Conout(cValue)
else
MsgInfo(cValue)
endif
return |