Árvore de páginas

Após efetuar as configurações pertinentes ao Rest Server, veremos a partir daqui como utilizar as funcionalidades da linguagem TL++ para escrever aplicações REST.

Meu primeiro programa

Como não poderia ser diferente vamos começar pelo básico, então nada melhor do que escrever nosso "Hello World".

Podemos escrever o programa de duas maneiras:

  • Utilizando uma função.

  • Utilizando uma classe.

Utilizando função

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

@Get("/test/helloWorld")
Function u_helloWorld()
 Local cReturn := "Meu primeiro REST em TL++ " as character
 oRest:setResponse(cReturn)
Return .T.

Utilizando classe

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

class helloWorld
 public data cReturn as character

 public method new()

 @Get("/test/helloWorld")
 public method sayHello() as logical
endClass

method new() class helloWorld
  ::cReturn := "Meu primeiro REST em TL++ "
return self

method sayHello() as logical class helloWorld
 oRest:setResponse(::cReturn)
return .T.


Explicando os componentes

Tomando como base os exemplos vistos acima, vamos explicar os componentes utilizados na construção do serviço REST TL++:

Includes

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

As includes tlpp-core.th e tlpp-rest.th são as únicas bibliotecas necessárias para o funcionamento básico que qualquer função\classe REST.

As mesmas já se encontram inclusas no tlpp.rpo bastando apenas declará-las.

@Get

@Get("/test/helloWorld")

A utilização de annotations tornou possível a simplificação na escrita de funções\classes REST. Com elas a aplicação faz o vínculo entre: verbo(delete,get,path,post,put) , a URN e a função/método responsável.

Saiba mais sobre a annotation @Get

oRest:setResponse("mensagem retorno")

oRest:setResponse(::cReturn)

Este método é o responsável por enviar a mensagem de retorno no corpo da requisição para o client(requisitante). Neste exemplo está sendo retornado uma mensagem simples, mas é possivel efetuar o retorno de todos os formatos nas permitidos para respostas de requisições HTTP em API´s do tipo REST.

Saiba mais sobre o método setResponse()

  • Sem rótulos