Service Callout
Assim como o Internal API Call, o Service Callout permite invocar uma nova chamada como parte do fluxo original com base nas configurações estabelecidas. A diferença é que, enquanto o Internal API Call se destina a redirecionamentos para APIs que estejam na Plataforma da Sensedia, o Service Callout permite invocar uma chamada externa.
Configurando o interceptor
As imagens e texto abaixo apresentam as informações a serem preenchidas para configurar o interceptor.
-
Variable name: define o nome do Service Callout, sendo único por fluxo. É através dessa nomenclatura que o interceptor é recuperado dentro da mapa
$call.contextVariables
, sendo necessário o interceptor Service Mashup para capturar a resposta do serviço. -
URL: define a URL que será invocada na requisição externa.
-
Method: define o método HTTP a ser usado na invocação.
-
Expected status: define o status code esperado.
-
Preserve query string: se a opção for marcada, a query string presente na requisição será repassada para a chamada externa.
-
Preserve body: se o campo for marcado, o body contido na requisição será repassado para a chamada externa. O campo será habilitado quando o method for diferente de GET.
-
Body: permite a inserção de um body. O campo será habilitado quando o método for diferente de GET e a opção Preserve body estiver desmarcada;
-
Preserve headers: se marcado, os headers presentes na requisição serão repassados para a chamada externa.
-
Headers: permite a inserção de headers.
O Service Callout tem a capacidade de realizar chamadas síncronas ou assíncronas. Neste último caso, uma chamada síncrona será enviada para a nova URL e o interceptor ficará aguardando o resultado dessa chamada para continuar a execução do fluxo. Para chamadas assíncronas, selecione o campo Asynchronous.
Para capturar a resposta de chamadas assíncronas, é necessário utilizar o interceptor Service Mashup no fluxo. |
As chamadas assíncronas podem ser do tipo Fire and Forget ou não, bastando apenas selecionar o campo ou deixá-lo em branco. Com o campo selecionado, o interceptor vai enviar a chamada e esquecê-la. Nesse caso, não haverá nenhum retorno da nova chamada.
Quando não for marcada a opção Fire and Forget, poderá ser configurado um tempo limite (timeout) para a chamada a ser realizada. Essa chamada será realizada de forma paralela e será encerrada caso o tempo limite seja atingido ou algum resultado seja retornado.
-
Abort request if fail: aborta o processo caso a requisição falhe. Caracteriza-se uma falha quando o status code da requisição é diferente do esperado. O campo será habilitado quando a requisição for síncrona.
How it works
Para recuperar o resultado da execução do Service Callout, é necessário ter um interceptor Service Mashup também adicionado ao fluxo da API.
Deve-se utilizar o mapa $call.contextVariables
, e um objeto do tipo RestResponse será retornado.
Share your suggestions with us!
Click here and then [+ Submit idea]