Árvore de páginas

Esta API permite obter via método GET uma listagem com todos os endpoints disponíveis no ambiente.
A mesma se utiliza do recurso de annotation disponível na linguagem TLPP, isto além de possibilitar o desenvolvimento, tornou a sua construção e utilização bem simples, como todo REST nativo na linguagem.

Como utilizar

Pode-se verificar a existência desta API utilizando-se o próprio navegador de internet como: "CHROME" ou então um client HTTP como por exemplo: "POSTMAN" , para isto basta utilizar um endereço como este exemplo: https://localhost:5012/rest/tlpp/rest/list/service

  • https - Protocolo definido na configuração do HttpServer para as aplicações REST.
  • localhost - Endereço(IP/Nome) do seu servidor de aplicação responsável pelo REST.
  • 5012 - Porta configurada no Appserver para o REST.
  • /rest - Location definida no Appserver para o REST.
  • /tlpp/rest/list/service - URI da aplicação.

Obs.: Todos os parâmetros da URL citados acima, exceto: URI da aplicação, devem ser definidos conforme as configurações do seu servidor HTTPServer.

O retorno é um JSON, como este do exemplo a seguir:


A verificação acima não é um item obrigatório, pode ser desconsiderada, mas pode servir de um meio de averiguação antes do desenvolvimento.
Para utilização desta API pode ser escrito um programa fonte .TLPP implementando uma User Function ou uma Classe no modelo REST para que seja possível consumir o serviço.

A seguir veremos exemplos com as duas formas de implementação utilizando a mesma URL vista acima.


Via User Function


#include "tlpp-core.th"
#include "tlpp-rest.th"

@Get("/tlpp/rest/pegalistaapis")
User Function pegaListaApis()

  
  Local cMethod := "GET"
  Local cServer := "https://localhost:5012/rest"
  Local cUri := "/tlpp/rest/list/service"
  Local cHeadRet := ""
  Local cPostParms := ""
  Local cGetParms := ""
  Local nTimeout := 5
  Local aHeadStr := {}
  Local jReturn

  jReturn := HttpQuote(cServer+cUri, cMethod, cGetParms, cPostParms, nTimeOut, aHeadStr, @cHeadRet)
  Conout(cValToChar(jReturn),"Tipo do retorno["+ValType(jReturn)+"] -->>")

Return


Via Classe


#include "tlpp-core.th"
#include "tlpp-rest.th"

class pegaListaApis from LongclassName
  public  method new()				constructor

	@Get("/tlpp/rest/pegalistaapis")
	public method mPegaListaApis()

endclass

method new() class pegaListaApis
return Self

method mPegaListaApis() Class pegaListaApis

  Local cMethod := "GET"
  Local cServer := "https://localhost:5012/rest"
  Local cUri := "/tlpp/rest/list/service"
  Local cHeadRet := ""
  Local cPostParms := ""
  Local cGetParms := ""
  Local nTimeout := 5
  Local aHeadStr := {}
  Local jReturn

  jReturn := HttpQuote(cServer+cUri, cMethod, cGetParms, cPostParms, nTimeOut, aHeadStr, @cHeadRet)
  Conout(cValToChar(jReturn),"Tipo do retorno["+ValType(jReturn)+"] -->>")

return .T.


Funcionamento

Nos exemplos descritos no item anterior, pode ser observado a utilização da função HTTPQuote disponível no binário do Appserver, a mesma simula o funcionamento de um Client HTTP onde são passados os parâmetros com os dados para que seja efetuada a consulta a API por meio do método GET, que também é enviado como parâmetro.
Pode ser observado também que o retorno é sempre um JSON, que no caso dos exemplos, é convertido em uma String para que seja possível a sua visualização no Console.log do server, porém o retorno deve ser trabalhado conforme a necessidade de implementação.

  • Sem rótulos