Integração com Split

Diagrama

source code example 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}
steps:
  - choice:
      when:
        - expression:
            simple: "${body[value] > 10}"
          steps:
            - toD:
                uri: https://example.com/api/true-endpoint
                parameters:
                  bridgeEndpoint: true
                  httpMethod: POST
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
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]