Processe payloads JSON como strings na tarefa de conetores HTTP

Neste tutorial, vai aprender a processar payloads JSON quando usa uma tarefa de conetores HTTP na integração de aplicações.

O tratamento incorreto da carga útil pode fazer com que as APIs a interpretem incorretamente, o que resulta em erros 400 Bad Request. Para garantir que as APIs recebem e analisam corretamente o seu payload JSON, trate o payload JSON como uma string e defina explicitamente o cabeçalho Content-Type como application/json.

Antes de começar

  • Confirme que consegue aceder à integração de aplicações.
  • Selecione o seu Google Cloud projeto e conclua as seguintes tarefas:

    • Conceda as seguintes funções à conta de serviço que quer usar para criar a associação:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
    • Ative os seguintes serviços:
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Se não tiver ativado estes serviços para o seu projeto, a página Criar associação pede-lhe que os ative quando criar a associação.

  • Adicione e configure uma tarefa de conetores HTTP.
  • Adicione e configure a tarefa Data Transformer para preparar o payload JSON e os cabeçalhos.

Processar payloads JSON como strings

Para processar payloads JSON que contenham carateres especiais quando usa uma tarefa de conetores HTTP, conclua os seguintes passos:

Crie uma variável de string para o payload JSON

  1. Na Google Cloud consola, aceda à página Application Integration.

    Aceda à solução Application Integration

  2. No menu de navegação, clique em Integrações.
  3. Selecione uma integração existente ou crie uma nova. Certifique-se de que a integração inclui as tarefas HTTP Connectors e Data Transformer configuradas, conforme detalhado na secçã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. Introduza as seguintes informações:
      1. Nome: introduza um nome, por exemplo, jsonPayloadString.
      2. Tipo de dados: selecione String.
      3. Valor predefinido:
        • Se a carga útil JSON for preenchida por uma tarefa anterior no fluxo de integração, por exemplo, outra tarefa do transformador de dados, deixe este campo vazio. A variável é preenchida dinamicamente com base no resultado das tarefas anteriores na integração.
        • Se o payload JSON não for preenchido por uma tarefa anterior, tem de fornecer um payload JSON predefinido estático. Introduza a estrutura JSON como uma única string neste campo.

          Seguem-se dois exemplos de como introduzir strings JSON no campo Valor predefinido:

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

          Com carateres especiais: quando o seu JSON contém carateres especiais, como uma nova linha (\n), tem de usar o caráter de escape. Por exemplo, para representar o JSON {"key": "value1\nvalue2"}, introduza {"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 a criação e a utilização de variáveis, consulte o artigo Variáveis.

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

No Editor do transformador de dados, mapeie a variável jsonPayloadString para o campo connectorInputPayload.Body.

  1. Na sua integração, adicione uma tarefa Data Transformer.
  2. Abra o editor do transformador de dados. Pode 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-a para o campo de saída connectorInputPayload.Body.
    • Modo de script: escreva código Jsonnet para atribuir o valor: connectorInputPayload.Body = vars.jsonPayloadString;.

Adicione um cabeçalho Content-Type personalizado

  1. No editor do transformador de dados, 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-a para connectorInputPayload.Headers.
    • Modo de script: adicione o seguinte Jsonnet para definir o cabeçalho:
      connectorInputPayload.Headers = {
        "Content-Type": "application/json"
      };
              

Execute a tarefa de conetores HTTP

Antes de executar a integração, verifique se connectorInputPayload.Body é preenchido pela variável jsonPayloadString e se connectorInputPayload.Headers inclui o cabeçalho Content-Type: application/json. Esta configuração garante que a tarefa Conetores HTTP envia a carga útil JSON como uma string com o Content-Type correto na tarefa Transformador de dados.

Execute a integração para testar o pedido da API. Se a API devolver um erro 400 Bad Request, verifique novamente os mapeamentos de connectorInputPayload.Body e connectorInputPayload.Headers na tarefa Transformador de dados.

O que se segue?

Experimente criar integrações com outros conetores. Para ver uma lista de todos os conetores suportados, consulte a referência do conetor.