HTTP Listener
O HTTP Listener é um Rush que fica escutando por requisições HTTP em uma determinada URL e, quando recebe uma requisição, executa o handler definido.
Como configurar
Para que seu HTTP Listener
funcione, você precisa configurar o parâmetro handler
com a lógica que será executada quando o HTTP Listener
receber uma requisição HTTP.
Para mais informações sobre os outros parâmetros, consulte a referência do HTTP Listener
(em inglês).
Estrutura do payload
Dentro do handler
, você consegue acessar usando o componente data2-core-types@Reference
os seguintes dados:
body
: corpo da requisiçãoheaders
: cabeçalhos da requisiçãomethod
: método da requisiçãoquery
: parâmetros da requisição
Por exemplo, se você faz uma requisição POST
para seu HTTP Listener
com o seguinte corpo:
{
"fruit": "apple"
}
Você consegue acessar esse valor utilizando body.fruit
no parâmetro reference
do componente data2-core-types@Reference
.
Autenticação
Para proteger seu HTTP Listener
, você pode colocar políticas no parâmetro policies
do HTTP Listener
.
Versionamento
Há duas formas de executar um HTTP Listener
:
- Bater na URL do
HTTP Listener
. - Chamar o método
invoke
doHTTP Listener
.
Versionamento quando acessado pela URL
Para este caso, a versão utilizada será a configurada no Builder. Para mais informações, consulte a seç ão de versionamento.
Versionamento quando chamado pelo método invoke
Para o segundo caso, a versão utilizada será do ambiente onde o HTTP Listener
teve seu invoke
chamado.
Exemplo:
HTTP Listener
configurado na versãov2
.Application
configurada na versãov1
.
A Application
tem um Artboard
com um botão que chama o HTTP Listener
pelo método invoke
. Ao clicar no botão, o HTTP Listener
será chamado na versão v1
, que é a mesma versão da Application
.
Exemplo
Neste exemplo, iremos criar um HTTP Listener
que recebe uma requisição POST
, esperando um body
com o campo fruit
e retorna uma resposta JSON
adicionando pie
no fim do valor de fruit
. Ou seja, se o body
for {"fruit": "apple"}
, a resposta será {"fruit": "apple pie"}
.
Criando o HTTP Listener
- Dê dois cliques no fundo do Builder, selecione a aba
Rush
e depoisHTTP Listener
. - Dê um nome ao seu
HTTP Listener
, por exemplo,FruitPieMaker
. - Clique em
Handler
, depois emActions
eAdd Item
. - Na primeira ação, vamos colocar um log para imprimir o valor de
body.fruit
nos logs de execução do Rush. Para isso:- Selecione
LoggerService
emModule
. - Selecione
log
emInteraction
. - No argumento
message
, clique nof()
e selecioneStringConcat
. Clique noStringConcat
e depois clique emPortions
para adicionar o texto que você quer. - Clique em
Add Item
e escreva algo comoReceived fruit:
. - Clique em
Add Item
novamente, clique nof()
e selecioneContext Reference
. Clique noReference
e coloquebody.fruit
no argumentoreference
.
- Selecione
- Verifique se os parâmetros
Enable Execution Logs
eShould Log Request Body
estão habilitados.
É uma boa prática testar constatemente seu HTTP Listener
para garantir que ele está funcionando como esperado. Para isso, digite { "fruit": "apple" }
no Body
do renderable do HTTP Listener
e clique no botão Send
. Em alguns instantes, você verá o log de execução do Rush no Builder. Ao clicar no log, você consegue ver informações da requisição, e na parte de Logs
, deveria ver uma mensagem com Received fruit: apple
.
Os logs são bem úteis enquanto você está desenvolvendo seu Rush, e também para debugar problemas que ocorram quando o Rush está rodando. Use com frequência!
note que no output
do HTTP Listener
, o parâmetro body
está vazio. Isso aconteceu porque não configuramos o que retornar do handler
. Para fazer isso:
- Clique em
Handler
, depois emActions
eAdd Item
. - Clique em
Actions
eAdd Item
. - Na segunda ação, vamos configurar o que retornar. Para isso:
- Clique em
f()
, selecione emobject
e clique para navegar. - Clique no
+
ao lado do cabeçalhoObject
do inspector para adicionar uma chave a esse objeto, no nosso caso,fruit
. - Clique no
f()
ao lado defruit
e selecioneStringConcat
. Clique noStringConcat
e depois clique emPortions
para adicionar o texto que você quer. - Clique em
Add Item
duas vezes. - No segundo item, coloque
pie
. - No primeiro item, clique no
f()
e selecioneContext Reference
. Clique noReference
e coloquebody.fruit
no argumentoreference
.
- Clique em
Teste novamente o HTTP Listener
com o mesmo corpo da requisição, { "fruit": "apple" }
, e você verá que o corpo (body) do output
agora está com o valor { "fruit": "apple pie" }
.
A URL do HTTP Listener
é a que está disponível no renderable do HTTP Listener
. É possível clicar no botão ao lado da URL para copiar a URL.
Limitações
O HTTP Listener
ainda não suporta:
- Domínios customizados.
- Alterar a URL do
HTTP Listener
.