Atendimento da solicitação de API


Neste tutorial, descrevemos um caso de uso de como usar a Application Integration para rotear e buscar informações para uma solicitação de API de entrada.

Visão geral

Neste tutorial, você vai criar uma integração com um gatilho de API que recebe solicitações de API para recuperar informações de clientes. Dependendo do local da solicitação da API, a integração recupera os detalhes do cliente de um banco de dados MySQL ou Oracle.

Diagrama de fulfillment da API Diagrama de fulfillment da API

Objetivos

Neste tutorial, mostramos como concluir as seguintes tarefas na integração:

  • Adicione um gatilho de API.
  • Adicionar e configurar tarefas do Connectors para conexões MySQL e Oracle.
  • Adicione e configure tarefas de mapeamento de dados para extrair e mapear o payload da API.

Custos

Neste tutorial, você usará os seguintes componentes faturáveis do Google Cloud:

As instruções deste tutorial foram criadas para manter o uso dos seus recursos dentro dos limites do nível Sempre gratuito do Google Cloud.

Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Saiba mais em Limpeza.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

Prepare o ambiente

Configurar um banco de dados MySQL

Conecte-se ao servidor MySQL e crie um banco de dados e uma tabela para usar neste tutorial. Neste tutorial, usamos um banco de dados que contém uma tabela chamada Customers com as seguintes linhas:

  +-------------+---------------+--------------------+------------------+
  | customer_id | customer_name | customer_emailID   | customer_city    |
  +-------------+---------------+--------------------+------------------+
  |           1 | Alex          | test-01@test.com   | New York         |
  |           2 | Dana          | test-02@test.com   | Seattle          |
  +-------------+---------------+--------------------+------------------+
  

Para mais informações sobre como criar e usar um banco de dados MySQL, consulte a documentação do MySQL.

Configurar um banco de dados Oracle

Conecte-se ao banco de dados Oracle e crie uma tabela para usar neste tutorial. Neste tutorial, usamos um banco de dados que contém uma tabela SQL chamada Customers com as seguintes linhas:

  +-------------+---------------+--------------------+------------------+
  | customer_id | customer_name | customer_emailID   | customer_city    |
  +-------------+---------------+--------------------+------------------+
  |           1 | Amal          | test-01@test.com   | Delhi            |
  |           2 | Hao           | test-02@test.com   | Beijing          |
  +-------------+---------------+--------------------+------------------+
  

Para saber como criar e usar um banco de dados Oracle, consulte a documentação da Oracle.

Configurar conexões

Para este tutorial, você precisa configurar as seguintes conexões nos Integration Connectors:

Conexão do MySQL
Configure uma conexão MySQL nos Integration Connectors para receber as entidades das tabelas Customer. Para informações sobre como configurar um conector MySQL, consulte Conector do MySQL.
Conexão do Oracle DB
Configure uma conexão do Oracle DB no Integration Connectors para acessar as entidades das tabelas Customer. Para informações sobre como configurar um conector MySQL, consulte Conector do Oracle DB.

Criar integração

Para criar uma nova integração, execute as seguintes etapas:

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

    Acessar o Application Integration

  2. No menu de navegação, clique em Integrações. A página Lista de integrações é exibida.
  3. Clique em Criar integração e forneça os seguintes detalhes na página Criar integração:
    1. Nome da integração:insira api_fulfilment.
    2. Descrição:insira Demo integration created for tutorial.
    3. Região:selecione us-central1 na lista de regiões com suporte.
    4. Clique em Criar para abrir o editor de integração.

Configurar gatilho de integração

Depois de criar sua integração, você pode adicionar e configurar um gatilho de integração que invoca a integração para um evento identificado.

Neste tutorial, um gatilho de API é usado para invocar a integração para cada nova solicitação de API. Para adicionar e configurar um gatilho de API na sua integração com o api_fulfilment, faça o seguinte:

  1. No editor de integração, clique em Acionadores para exibir uma lista de acionadores disponíveis.
  2. Clique e posicione o elemento Gatilho da API no editor de integração.

    A Application Integration preenche automaticamente o identificador e o nome do gatilho e o ID dele. O ID do acionador é um código gerado por máquina no formato api_trigger/TRIGGER_NAME usado na solicitação de API.

  3. Nenhuma configuração adicional é necessária para esse gatilho.

Criar variáveis de integração

As variáveis de integração são semelhantes às variáveis usadas em uma linguagem de programação. Os dados nas variáveis podem ser lidos e gravados durante toda a execução da integração. Para criar as variáveis necessárias para este tutorial, faça o seguinte:

  1. Clique em (Alternar painel) na barra de navegação do designer para abrir o painel Variables.
  2. Clique em + Criar e crie as seguintes variáveis de integração:
    Nome da variável Tipo de dados Tipo variável
    location STRING Entrada para integração
    customer_id STRING Entrada para integração
    customer_record JSON Saída da integração

Recuperar dados de clientes do banco de dados MySQL

Se a solicitação da API de entrada for do local US, faça o seguinte para recuperar os dados do cliente do banco de dados MySQL.

Conectar-se ao banco de dados MySQL

Realize as etapas a seguir para adicionar e configurar uma tarefa Connectors para recuperar os detalhes dos clientes da tabela Customers do MySQL:

  1. No editor de integração, clique em Tasks para mostrar uma lista das tarefas disponíveis.
  2. Clique e coloque o elemento Conectores no editor de integração.
  3. Selecione o elemento de tarefa Connectors no designer para visualizar o painel de configuração da tarefa Connectors.
  4. Clique em e renomeie o rótulo Conectores como Fetch MySQL Data.
  5. Clique em Configurar conector.
  6. Faça o seguinte na página do Editor de tarefas de conectores:
    1. Em Selecionar conexão, escolha a região us-central1.
    2. Selecione sua conexão do Salesforce na lista de conexões disponíveis.
    3. Clique em Próxima.
    4. Em Type, escolha Entities.
    5. Em Definir entidades/ações, selecione Clientes na lista de entidades disponíveis e escolha Obter como a Operação.
    6. Clique em Concluído para concluir a configuração da conexão e feche o painel.

Mapear ID de cliente para o conector do MySQL

Uma tarefa Mapeamento de dados é usada para mapear o ID de cliente para o conector do MySQL. Para adicionar e configurar o mapeamento de dados na integração, faça o seguinte:

  1. No editor de integração, clique em Tasks para mostrar uma lista das tarefas disponíveis.
  2. Clique e posicione o elemento Mapeamento de dados no editor de integração.
  3. Selecione o elemento Mapeamento de dados no designer para visualizar o painel de configuração de tarefas.
  4. Clique em e renomeie a tarefa Mapeamento de dados para Map to MySQL.
  5. Clique em Abrir editor de mapeamento de dados.

    O Editor de mapeamento de dados permite mapear variáveis de entrada para as variáveis de saída desejadas, usando as funções de transformação disponíveis. A saída é disponibilizada como uma variável para qualquer outra tarefa ou gatilho de integração. Para mais detalhes sobre variáveis de mapeamento, consulte Adicionar um mapeamento.

  6. Mapeie a variável de integração do gatilho customer_id para a variável de entrada do conector gerada automaticamente (entityId(Fetch MySQL Data)).

    Quando o mapeamento for concluído, feche o painel. Todas as alterações serão salvas automaticamente.

  7. Adicione uma conexão de borda da tarefa Mapear para o MySQL ao conector Buscar dados do MySQL.

Recuperar detalhes do cliente do MySQL

Para recuperar os detalhes do cliente do conector do MySQL, faça o seguinte:

  1. No editor de integração, clique em Tasks para mostrar uma lista das tarefas disponíveis.
  2. Clique e posicione o elemento Mapeamento de dados no editor de integração.
  3. Clique no elemento Mapeamento de dados no designer para visualizar o painel de configuração de tarefas.
  4. Clique em e renomeie a tarefa Mapeamento de dados para Get MySQL data.
  5. Clique em Abrir editor de mapeamento de dados.
  6. Mapeie a variável de saída do MySQL (connectorOutputPayload (Fetch MySQL Data)) para a variável de integração customer_record.

    Quando o mapeamento for concluído, feche o painel. Todas as alterações serão salvas automaticamente.

  7. Adicione uma conexão de borda do conector Buscar dados do MySQL à tarefa Receber dados do MySQL.

Recuperar dados de clientes do banco de dados Oracle

Se a solicitação da API de entrada for do local APAC, faça o seguinte para recuperar dados de clientes do banco de dados Oracle.

Conecte-se ao banco de dados Oracle

Realize as etapas a seguir para adicionar e configurar uma tarefa Connectors para recuperar os detalhes dos clientes da tabela Customers do Oracle:

  1. No editor de integração, clique em Tasks para mostrar uma lista das tarefas disponíveis.
  2. Clique e coloque o elemento Conectores no editor de integração.
  3. Selecione o elemento de tarefa Connectors no designer para visualizar o painel de configuração da tarefa Connectors.
  4. Clique em e renomeie o rótulo Conectores como Fetch Oracle Data.
  5. Clique em Configurar conector.
  6. Faça o seguinte na página do Editor de tarefas de conectores:
    1. Em Selecionar conexão, escolha a região us-central1.
    2. Selecione sua conexão do Salesforce na lista de conexões disponíveis.
    3. Clique em Próxima.
    4. Em Type, escolha Entities.
    5. Em Definir entidades/ações, selecione Clientes na lista de entidades disponíveis e escolha Obter como a Operação.
    6. Clique em Concluído para concluir a configuração da conexão e feche o painel.

Mapear ID de cliente para o conector Oracle

Para adicionar e configurar o mapeamento de dados na integração, faça o seguinte:

  1. No editor de integração, clique em Tasks para mostrar uma lista das tarefas disponíveis.
  2. Clique e posicione o elemento Mapeamento de dados no editor de integração.
  3. Selecione o elemento Mapeamento de dados no designer para visualizar o painel de configuração de tarefas.
  4. Clique em e renomeie a tarefa Mapeamento de dados para Map to Oracle.
  5. Clique em Abrir editor de mapeamento de dados.
  6. Mapeie a variável de integração do gatilho customer_id para a variável de entrada do conector gerada automaticamente (entityId(Fetch Oracle Data)).

    Quando o mapeamento for concluído, feche o painel. Todas as alterações serão salvas automaticamente.

  7. Adicione uma conexão de borda da tarefa Mapear para o Oracle para o conector Buscar dados do Oracle.

Recuperar detalhes do cliente da Oracle

Para recuperar os detalhes do cliente do conector Oracle, faça o seguinte:

  1. No editor de integração, clique em Tasks para mostrar uma lista das tarefas disponíveis.
  2. Clique e posicione o elemento Mapeamento de dados no editor de integração.
  3. Clique no elemento Mapeamento de dados no designer para visualizar o painel de configuração de tarefas.
  4. Clique em e renomeie a tarefa Mapeamento de dados para Get Oracle data.
  5. Clique em Abrir editor de mapeamento de dados.
  6. Mapeie a variável de saída do Oracle (connectorOutputPayload (Fetch Oracle Data)) para a variável de integração customer_record.

    Quando o mapeamento for concluído, feche o painel. Todas as alterações serão salvas automaticamente.

  7. Adicione uma conexão de borda do conector Buscar dados do Oracle para a tarefa Receber dados do Oracle.

Adicionar condição de borda

Uma condição de borda permite especificar as condições que precisam ser atendidas para que o controle de uma integração passe para a tarefa conectada pela borda. Agora que você adicionou e configurou as tarefas necessárias, adicione uma condição de borda para definir o fluxo da integração.

A condição de borda a seguir controla o fluxo de integração com base na variável de integração location:

  1. Adicione uma conexão de borda do gatilho API à tarefa Map to MySQL com a seguinte condição de borda:
      $location$ = "US"
  2. Adicione outra conexão de borda do gatilho API à tarefa Mapear para o Oracle com a seguinte condição de borda:
      $location$ = "APAC"

Exemplo de fluxo de integração

A figura a seguir mostra um exemplo de layout da integração criada usando este tutorial.

Imagem de exemplo mostrando o fluxo de integração Imagem de exemplo mostrando o fluxo de integração

Publicar integração

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 acessar os registros, clique em imagem mostrando o ícone de registros de execuçãoAcessar os registros de execução para esta integração. A página Registros de execução é exibida.

Testar a integração

Testar a integração no editor de integração

Para testar a integração no editor de integração, siga estas etapas:

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

    O painel Test Integration é exibido.

  2. Você será solicitado a inserir os valores de teste para as variáveis de entrada de integração. Para este teste, faça o seguinte:
    • customer_id::insira 1.
    • location:insira APAC.
  3. Clique em Testar integração.

A integração é executada com sucesso e o seguinte valor do cliente é exibido:

{ 
  "CUSTOMER_ID": 1,
  "CUSTOMER_NAME": "Amal"
  "CUSTOMER_EMAILID": "test-01@test.com "
  "CUSTOMER_CITY": "Delhi"
}

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

Testar usando uma chamada de API REST

Agora que a integração está publicada e em execução, você pode invocá-la usando a seguinte chamada REST POST:

URL:
https://integrations.googleapis.com/v1/projects/project-name/locations/-/integrations/api_fulfilment:execute 
Corpo da solicitação:
{"trigger_id":"api_trigger/api_fulfilment_API_1"}

Exemplo: fazer uma solicitação de API com entradas personalizadas

curl -v -X POST -H "Content-Type: application/json" 'https://integrations.googleapis.com/v1/projects/connectors-ip-test/locations/us-central1/integrations/api-fulfillment-integration:execute' -H "Authorization: Bearer $(gcloud auth AUTH_PROFILE)" -d  '{ "triggerId": "api_trigger/api-fulfillment-integration_API_1", "inputParameters": { "customer_id": {"string_value": 1}, "location" : {"string_value" : "US"}} }'

A API retorna a resposta de execução da integração contendo todos os JSONs a seguir:

  { 
    "CUSTOMER_ID": 2,
    "CUSTOMER_NAME": "Dana"
    "CUSTOMER_EMAILID": "test-02@test.com "
    "CUSTOMER_CITY": "Seattle"
  }
  

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, cancele a publicação da integração e exclua as conexões criadas no Integration Connectors.

  • Para cancelar a publicação dessa integração, clique em Cancelar publicação na barra de ferramentas do editor de integração. Consulte Excluir integrações para mais informações.
  • Para mais informações sobre como excluir uma conexão, consulte Gerenciar conectores.