Classe: FWRest


Descrição
Classe Client de REST


New

Sintaxe
FWREST():New(<cHost >)-> NIL

Descrição
Construtor

Parâmetros

NomeTipoDescriçãoDefaultObrigatórioReferência
cHostCaracteresEndereço do Host que iremos fazer o consumo do REST
X

SetPath

Sintaxe
FWREST():SetPath(<cPath >)-> NIL

Descrição
Informa o path aonde será feito a requisição

Parâmetros

NomeTipoDescriçãoDefaultObrigatórioReferência
cPathCaracteresPath do caminho da requisição
X

Get

Sintaxe
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

NomeTipoDescriçãoDefaultObrigatórioReferência
aHeadStrArrayArray com parâmetros do head
X
cGetParamCaracteresIndica 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.


Na passagem do parâmetro cGetParam, deve-se ficar atento ao formato da string que será passada como parâmetro, pois a mesma segue o formato URI - Uniform Resource Identifiers: Query Component. Para tanto, utilize no valor do parâmetro a função Escape.

GetResult

Sintaxe
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

GetLastError

Sintaxe
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 

Post

Sintaxe
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

NomeTipoDescriçãoDefaultObrigatórioReferência
aHeadStrArrayArray com parâmetros do head
X


Retorno
lOK Retorna .T. se conseguir fazer a conexão.

SetPostParams

Sintaxe
FWREST():SetPostParams(<cParams >)-> NIL

Descrição
Seta a string de parâmetro do Post

Parâmetros

NomeTipoDescriçãoDefaultObrigatórioReferência
cParamsCaracteresParâmetros do Post
X

Put

Sintaxe
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

NomeTipoDescriçãoDefaultObrigatórioReferência
aHeadStrArrayArray com parâmetros do head
X
cPayLoadCaracteresCorresponde à StringList de parâmetros a serem enviados ao servidor HTTP""


Retorno
lOK Retorna .T. se o Get retornar o HTTP code 200 ou 201.

Delete

Sintaxe
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

NomeTipoDescriçãoDefaultObrigatórioReferência
aHeadStrArrayArray com parâmetros do head
X
cPayLoadCaracteresCorresponde à StringList de parâmetros a serem enviados ao servidor HTTP""


Retorno
lOK Retorna .T. se o Get retornar o HTTP code 200 ou 201.



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

NomeTipoDescriçãoDefaultObrigatórioReferência
lChkLógicoVariável de decisão sobre quem irá checar o retorno do HTTP Code.T.


Retorno
Nil

Método disponível a partir da Release 23 do Protheus 12.

GetChkStatus

Sintaxe
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

Método disponível a partir da Release 23 do Protheus 12.

GetHTTPCode

Sintaxe
FWRest():GetHTTPCode()

Descrição
Método que retorna o HTTPCode da requisição.

Retorno
cResult – Retorno HTTP Code da requisição

Método disponível a partir da Release 23 do Protheus 12.



SetGetParams

Sintaxe
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

NomeTipoDescriçãoDefaultObrigatórioReferência
cGetParamsCharactereString contendo o valor do parâmetro GET, utilizado na URI
X

Método disponível a partir da LIB 20201009




Exemplo:

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:

#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

	FreeObj(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