Integração com Split
Componentes e EIPs
Componentes | EIPs |
---|---|
REST |
From |
HTTPS |
ToD |
Unmarshal |
|
Split |
|
Choice |
Confira a descrição de cada componente e EIP. |
Descrição
Confira abaixo a descrição das etapas executadas:
-
O fluxo começa com uma requisição
GET
no endpoint/startflow
.
- from:
Description: Endpoint REST que inicia o fluxo
uri: rest:get:/startflow
-
Depois o fluxo faz uma nova requisição
GET
para um endpoint que retorna uma lista de itens.
steps:
- toD:
uri: https://example.com/api/list
parameters:
bridgeEndpoint: true
httpMethod: GET
-
A resposta da chamada
GET
é tratada como um JSON e é desserializada utilizando a biblioteca Jackson. Isso permite que o fluxo manipule os dados como objetos em vez de apenas texto bruto.
- unmarshal:
json:
library: Jackson
-
O próximo step divide a resposta JSON (presumivelmente uma lista) para que cada item possa ser processado individualmente. A expressão
${body}
refere-se ao conteúdo da resposta que foi desserializada no step anterior.
- split:
expression:
simple:
expression: ${body}
-
O Choice define que para cada item da lista:
-
Se o valor de
value
for maior que10
, umPOST
é enviado parahttps://example.com/api/true-endpoint
.
-
steps:
- choice:
when:
- expression:
simple: "${body[value] > 10}"
steps:
- toD:
uri: https://example.com/api/true-endpoint
parameters:
bridgeEndpoint: true
httpMethod: POST
-
Caso contrário, um
POST
é enviado parahttps://example.com/api/false-endpoint
otherwise:
steps:
- toD:
uri: https://example.com/api/false-endpoint
parameters:
bridgeEndpoint: true
httpMethod: POST
Script do fluxo
Veja abaixo o script completo do fluxo de integração descrito:
- from:
Description: Endpoint REST que inicia o fluxo
uri: rest:get:/startflow # Endpoint que inicia o fluxo
steps:
- toD:
uri: https://example.com/api/list # Chamada GET para obter a lista de itens
parameters:
bridgeEndpoint: true
httpMethod: GET # Definindo o método HTTP como GET
- unmarshal:
json:
library: Jackson # Usando a biblioteca Jackson para desserializar a resposta JSON
- split:
expression:
simple:
expression: ${body} # Dividindo a resposta (supondo que seja uma lista) para iterar sobre os itens
steps:
- choice:
when:
- expression:
simple: "${body[value] > 10}" # Condição para verificar se o valor do campo 'value' é maior que 10
steps:
- toD:
uri: https://example.com/api/true-endpoint # Endpoint a ser chamado se a condição for verdadeira
parameters:
bridgeEndpoint: true
httpMethod: POST # Método HTTP POST
otherwise:
steps:
- toD:
uri: https://example.com/api/false-endpoint # Endpoint a ser chamado se a condição for falsa
parameters:
bridgeEndpoint: true
httpMethod: POST # Método HTTP POST
Share your suggestions with us!
Click here and then [+ Submit idea]