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.viewerroles/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.
- Conceda os seguintes papéis à conta de serviço que você quer usar para 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
- Mapear a variável de string para o corpo de entrada do conector
- Adicionar um cabeçalho Content-Type personalizado
- Executar a tarefa de conectores HTTP
Criar uma variável de string para o payload JSON
- No console do Google Cloud , acesse a página Application Integration.
- No menu de navegação, clique em Integrações.
- 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.
- No editor de integração, clique em Criar para abrir a caixa de diálogo Criar variável.
- Na caixa de diálogo Criar variável:
- Digite as seguintes informações:
- Nome:insira um nome, por exemplo,
jsonPayloadString. - Tipo de dado:selecione String.
- 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.
- Nome:insira um nome, por exemplo,
- Clique em Criar.
Para mais informações sobre como criar e usar variáveis, consulte Variáveis.
- Digite as seguintes informações:
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.
- Na sua integração, adicione uma tarefa do transformador de dados.
- Abra o Editor do Transformador de Dados. É possível usar o modo de diagrama ou o modo de script.
- Para mapear a variável:
- Modo de diagrama:adicione
jsonPayloadStringcomo 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;.
- Modo de diagrama:adicione
Adicionar um cabeçalho Content-Type personalizado
- 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" };
- Modo de diagrama:adicione uma entrada constante com o valor
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.