Processar payloads JSON como strings na tarefa de conectores HTTP

Neste tutorial, você vai aprender a processar payloads JSON ao usar uma tarefa de conectores HTTP na Application Integration.

O tratamento incorreto do payload pode fazer com que as APIs o interpretem mal, resultando em erros 400 Bad Request. Para garantir que as APIs recebam e analisem seu payload JSON corretamente, trate o payload JSON como uma string e defina explicitamente o cabeçalho Content-Type como application/json.

Antes de começar

  • Verifique se você pode acessar a integração de aplicativos.
  • Selecione o projeto Google Cloud e conclua as seguintes tarefas:

    • Conceda os seguintes papéis à conta de serviço que você quer usar para criar a conexão:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
    • Ative os seguintes serviços:
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Se você não tiver ativado esses serviços para seu projeto, a página Criar conexão vai pedir que você os ative ao criar a conexão.

  • Adicione e configure uma tarefa de conectores HTTP.
  • Adicione e configure a tarefa do transformador de dados para preparar o payload e os cabeçalhos JSON.

Processar payloads JSON como strings

Para processar payloads JSON que contêm caracteres especiais ao usar uma tarefa de conectores HTTP, siga estas etapas:

Criar uma variável de string para o payload JSON

  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.
  3. Selecione uma integração ou crie uma. Verifique se a integração inclui as tarefas configuradas de conectores HTTP e transformador de dados, conforme detalhado na seção Antes de começar.
  4. No editor de integração, clique em Criar para abrir a caixa de diálogo Criar variável.
  5. Na caixa de diálogo Criar variável:
    1. Digite as seguintes informações:
      1. Nome:insira um nome, por exemplo, jsonPayloadString.
      2. Tipo de dado:selecione String.
      3. Valor padrão:
        • Se o payload JSON for preenchido por uma tarefa anterior no fluxo de integração, por exemplo, outra tarefa do Data Transformer, deixe esse campo vazio. A variável será preenchida dinamicamente com base na saída das tarefas anteriores na integração.
        • Se o payload JSON não for preenchido por uma tarefa anterior, você precisará fornecer um payload JSON estático padrão. Insira a estrutura JSON como uma única string nesse campo.

          Confira dois exemplos de como inserir strings JSON no campo Valor padrão:

          Sem caracteres especiais: para representar o JSON {"name": "Developer", "key": "test"}, insira exatamente: { "name": "Developer", "key": "test" }.

          Com caracteres especiais: quando o JSON contém caracteres especiais, como nova linha (\n), é necessário inserir um escape. Por exemplo, para representar o JSON {"key": "value1\nvalue2"}, digite {"key": "value1\\nvalue2"} no campo.

    2. Clique em Criar.
    Crie uma variável de string para o payload JSON
  6. Para mais informações sobre como criar e usar variáveis, consulte Variáveis.

Mapear a variável de string para o corpo de entrada do conector

No Editor de transformação de dados, mapeie a variável jsonPayloadString para o campo connectorInputPayload.Body.

  1. Na sua integração, adicione uma tarefa do transformador de dados.
  2. Abra o Editor do Transformador de Dados. É possível usar o modo de diagrama ou o modo de script.
  3. Para mapear a variável:
    • Modo de diagrama:adicione jsonPayloadString como entrada e mapeie para o campo de saída connectorInputPayload.Body.
    • Modo de script:escreva o código Jsonnet para atribuir o valor: connectorInputPayload.Body = vars.jsonPayloadString;.

Adicionar um cabeçalho Content-Type personalizado

  1. No Editor do Data Transformer, adicione um mapeamento para cabeçalhos personalizados ao campo connectorInputPayload.Headers.
    • Modo de diagrama:adicione uma entrada constante com o valor {"Content-Type": "application/json"} e mapeie para connectorInputPayload.Headers.
    • Modo de script:adicione o seguinte Jsonnet para definir o cabeçalho:
      connectorInputPayload.Headers = {
        "Content-Type": "application/json"
      };
              

Executar a tarefa do HTTP Connectors

Antes de executar a integração, verifique se connectorInputPayload.Body está preenchido pela variável jsonPayloadString e se connectorInputPayload.Headers inclui o cabeçalho Content-Type: application/json. Essa configuração garante que a tarefa Conectores HTTP envie o payload JSON como uma string com o Content-Type correto na tarefa Transformador de dados.

Execute a integração para testar a solicitação de API. Se a API retornar um erro 400 Bad Request, verifique novamente os mapeamentos de connectorInputPayload.Body e connectorInputPayload.Headers na tarefa Data Transformer.

A seguir

Tente criar integrações com outros conectores. Para conferir uma lista de todos os conectores compatíveis, consulte a Referência de conectores.