Páginas filhas
  • FWRest

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


Classe: FWRest


Descrição
Classe Client de REST


Painel

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
Painel

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
Painel

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.


Nota
titleAtenção

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.

Painel

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

Painel

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 

Painel

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.

Painel

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
Painel

Put

Sintaxe
FWREST():Put(<aHeadStr >, <cPayLoad>, <cGETParms>)-> 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
cPayLoadCaractereCorresponde à StringList de parâmetros a serem enviados ao servidor HTTP""

cGETParmsCaractereCorresponde ao endereço HTTP, juntamente com a pasta e o documento solicitados ( lib 20230403 ou superior)""


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

Painel

Delete

Sintaxe
FWREST():Delete(<aHeadStr >, <cPayLoad>, <cGETParms>)-> 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
cPayLoadCaractereCorresponde à StringList de parâmetros a serem enviados ao servidor HTTP""

cGETParmsCaractereCorresponde ao endereço HTTP, juntamente com a pasta e o documento solicitados ( lib 20230403 ou superior)""


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

NomeTipoDescriçãoDefaultObrigatórioReferência
lChkLógicoVariá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

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

Informações

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

Painel

GetHTTPCode

Sintaxe
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

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
Informações

Método disponível a partir da LIB 20201009

Painel

SetLegacySuccess

Sintaxe
FWREST():SetLegacySuccess(<lActive>)-> Logical

Descrição
Metodo de compatibilidade para range extendido do Status Code, quando desabilitado passa a ser considerado o range completo de códigos de sucesso (200 a 299).

Ex.: 

  • ::SetLegacySuccess(.F.) ) → o verbo utilizado retornará .T. se retornado Status Code de 200 a 299
  • ::SetLegacySuccess(.T.) ) → o verbo utilizado retornará .T. se retornado Status Code de 200 a 201


Parâmetros

NomeTipoDescriçãoDefaultObrigatórioReferência
lActiveLogicalIndica se mantem o comportamento legado (Status code 200 e 201).T.X.T. - 200 à 201
.F. - 200 à 299
Informações
titleImportante

Método disponível a partir da lib 20240812.





Exemplo:

Bloco de código
languagejs
themeRDark
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
languagejs
themeRDark
#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