Testar a integração de amostra

Ao configurar o Application Integration no seu projeto do Google Cloud pela primeira vez, ele cria por padrão uma integração de amostra não publicada chamada ExampleIntegration-EcomOrderProcessing.

Ver exemplo de integração

Para conferir a integração de exemplo, faça o seguinte:

  1. No console do Google Cloud, acesse a página Application Integration.

    Acessar o Application Integration

  2. Clique em Integrações no menu de navegação à esquerda para abrir a página Integrações.
  3. Clique na integração chamada ExampleIntegration-EcomOrderProcessing.

    A integração de exemplo é aberta no editor de integração, semelhante ao seguinte layout:

    Imagem de exemplo do layout de integração Imagem de exemplo do layout de integração

Exemplo de integração de e-commerce

Use essa integração de exemplo para ter uma experiência prática com os vários acionadores, tarefas e conceitos do Application Integration.

O exemplo de integração ilustra um cenário básico de back-end de e-commerce que implementa a seguinte operação de processamento de pedidos:

  1. Receba o seguinte payload de solicitação de pedido de um endpoint de API:
    {
      "order_no": "12345",
      "buyer_id": "raambo",
      "line_items": [
        {
          "line": 1,
          "sku": "tr100",
          "vendor": "Internal",
          "quantity": 1,
          "price_per_unit": 10
        },
        {
          "line": 2,
          "sku": "tbz",
          "vendor": "External",
          "quantity": 24.0,
          "price_per_unit": 1
        }
      ]
    }
  2. Extraia o payload do pedido e calcule o valor total dele.
  3. Verifique se o valor total do pedido é maior ou igual a US $100. Se sim, peça uma aprovação adicional para continuar.
  4. Verifique se algum dos itens do pedido tem um fornecedor externo. Se sim, envie os detalhes ao fornecedor usando uma chamada da API REST.
  5. Envie a resposta do pedido com o valor total, os itens filtrados do fornecedor externo e o status da resposta HTTP correspondente.

A tabela a seguir lista todos os gatilhos, tarefas e condições de borda usados em ExampleIntegration-EcomOrderProcessing:

Componente Configuração Descrição
Gatilho da API

(OrderProcessAPITrigger)

ID do acionador: api_trigger/ecom-order-processing_API_1 Invoca a integração para cada solicitação de pedido.
Tarefa de mapeamento de dados

(Encontrar o preço total do pedido)

Entrada Saída Extrai a variável de entrada JSON order_request e itera por todos os itens do pedido usando a função de mapeamento FOR_EACH para calcular o valor total do preço do pedido.

O valor total do preço do pedido é calculado multiplicando o quantity do item e o price_per_item usando as funções de mapeamento GET_PROPERTY e MULTIPLY.

O valor final é convertido em um tipo de dados duplo e armazenado na variável de saída total_order_value.

orders_request.line_items
.FOR_EACH(~obj1->~obj1
  .GET_PROPERTY("quantity")
  .TO_DOUBLE()
  .MULTIPLY(~obj1
    .GET_PROPERTY("price_per_unit")
    .TO_DOUBLE()))
.TO_DOUBLE_ARRAY()
.SUM()
total_order_value
Condição de borda

(Total OrderValue Above Threshold)

Condição: $total_order_value$ >= $threshold_order_value$ Verifica se o valor total do pedido é maior ou igual a US $100. Se sim, o controle será transferido para uma tarefa de aprovação.
Condição de borda

(TotalOrderValue Below Threshold)

Condição: $total_order_value$ < $threshold_order_value$ Verifica se o valor total do pedido é menor que US $100. Se sim, o controle é passado para a tarefa "Filtrar itens externos".
Tarefa "Aprovação"

(Aprovação)

Destinatários:Enter the approver's email address

Para testar essa integração de amostra, use seu e-mail para confirmar a conclusão.

Envie um e-mail de solicitação de aprovação para um ou mais usuários de integração. O e-mail inclui um link para a integração em que os usuários podem aprovar ou recusar manualmente a solicitação.
Tarefa de mapeamento de dados

(Filtrar itens externos)

Entrada Saída Extrai a variável de entrada JSON order_request e filtra todos os itens do pedido com fornecedores externos usando a função de mapeamento FILTER.

Os valores filtrados são armazenados na variável de saída filtered_external_items.

orders_request
.GET_PROPERTY("line_items")
.FILTER(~obj1->~obj1
  .GET_PROPERTY("vendor")
  .TO_STRING()
  .EQUALS("External"))
filtered_external_items
Tarefa Para cada loop

(Para cada loop)

Lista a ser iterada:filtered_external_items

ID do gatilho da API:api_trigger/ecom-order-processing_API_2

Nome da integração: ExampleIntegration-EcomOrderProcessing

Itera na variável filtered_external_items e chama a subintegração para cada elemento na matriz. Ele também agrupa a resposta de cada execução em rest_call_response_status, em que cada elemento da matriz tem a resposta de uma execução específica.
Gatilho da API

(Report ExternalOrders)

ID do acionador: api_trigger/ecom-order-processing_API_2 Invoca a subintegração para cada elemento em filtered_external_items.
Tarefa "Chamar endpoint REST"

(Chamar endpoint REST)

URL base do endpoint : https://mocktarget.apigee.net/echo

Método HTTP:POST

Corpo da solicitação: sub_integration_input

Faz uma chamada REST para https://mocktarget.apigee.net/echo.

Publicar e testar a integração de amostra

Para publicar a integração, clique em Publicar na barra de ferramentas do editor de integração.

Após a publicação da integração, você poderá ver e inspecionar os registros de execução da integração publicada. Para ver os registros, clique em imagem mostrando o ícone de registros de execuçãoExibir registros de execução para esta integração. A página Registros de execução é exibida.

Testar no editor de integração

Para testar a integração de amostra, faça o seguinte:

  1. Clique em Testar na barra de ferramentas do editor de integração e selecione OrderProcessAPITrigger.

    O painel Test Integration é exibido.

  2. Você vai receber uma solicitação para editar a variável de entrada orders_request. Para fins deste teste, atualize o valor de quantity para 240. A variável de entrada orders_request da atualização precisa ser semelhante a esta:
        {
          "order_no": "12345",
          "buyer_id": "raambo",
          "line_items": [
            {
              "line": 1,
              "sku": "tr100",
              "vendor": "Internal",
              "quantity": 1,
              "price_per_unit": 10
            },
            {
              "line": 2,
              "sku": "tbz",
              "vendor": "External",
              "quantity": 240,
              "price_per_unit": 1
            }
          ]
        }
        
  3. Clique em Testar integração.

Como a quantidade atualizada de orders_request é maior que 200, a integração de exemplo envia um e-mail de solicitação de aprovação para o endereço especificado no campo Destinatários da tarefa de aprovação. A operação de pedido de integração será concluída quando a aprovação for recebida.

Para mais informações sobre testes, consulte Testar e publicar integrações.

Faça o seguinte para inspecionar os registros de execução e ver o status e o payload da integração:

  1. No editor de integração, clique em imagem mostrando o ícone de registros de execuçãoExibir registros de execução para esta integração. A página Registros de execução é exibida.
  2. Na página Execution Logs, você pode ver detalhes sobre cada tentativa de executar uma integração. Cada entrada inclui detalhes para a tentativa de execução, incluindo:
    • Nome da integração
    • ID de execução
    • Status
    • Horário de início
    • Duração
    • Versão da integração
    • ID de acionamento
  3. Clique na seta de expansão (>) ao lado da integração executada para ver uma lista expandida de tarefas e variáveis na integração, além do status da tarefa e payloads de variável.

Testar usando uma chamada de API REST

Caso de teste 1: enviar solicitação com entradas padrão

  curl -X POST -H "Content-Type: application/json" -d '{"trigger_id":"api_trigger/ecom-order-processing_API_1"}' 'https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME:execute' -H "Authorization: Bearer $(gcloud auth print-access-token)"

Caso de teste 2: enviar solicitação com entradas personalizadas

  curl -X POST -H "Content-Type: application/json" -d '{ "triggerId": "api_trigger/ecom-order-processing_API_1", "inputParameters": { "orders_request": { "jsonValue": "{\n \"order_no\": \"12345\",\n \"buyer_id\": \"raambo\",\n \"line_items\": [{\n \"line\": 1.0,\n \"sku\": \"tr100\",\n \"vendor\": \"Internal\",\n \"quantity\": 1.0,\n \"price_per_unit\": 10.0\n }, {\n \"line\": 2.0,\n \"sku\": \"tbz\",\n \"vendor\": \"External\",\n \"quantity\": 24.0,\n \"price_per_unit\": 2.0\n }]\n}" } } }' 'https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME:execute' -H "Authorization: Bearer $(gcloud auth print-access-token)"

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud.
  • LOCATION: o local da integração. Consulte Locais da Application Integration.
  • INTEGRATION_NAME: nome da integração.

Saída de teste

A API retorna a resposta de execução da integração com todos os valores das variáveis de saída da integração.

Cotas e limites

Para informações sobre o assunto, consulte Cotas e limites.