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.viewerroles/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.
- Conceda as seguintes funções à conta de serviço que quer usar para 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
- Mapeie a variável de string para o corpo de entrada do conetor
- Adicione um cabeçalho Content-Type personalizado
- Execute a tarefa Conetores HTTP
Crie uma variável de string para o payload JSON
- Na Google Cloud consola, aceda à página Application Integration.
- No menu de navegação, clique em Integrações.
- 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.
- 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:
- Introduza as seguintes informações:
- Nome: introduza um nome, por exemplo,
jsonPayloadString. - Tipo de dados: selecione String.
- 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.
- Nome: introduza um nome, por exemplo,
- Clique em Criar.
Para mais informações sobre a criação e a utilização de variáveis, consulte o artigo Variáveis.
- Introduza as seguintes informações:
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.
- Na sua integração, adicione uma tarefa Data Transformer.
- Abra o editor do transformador de dados. Pode usar o modo de diagrama ou o modo de script.
- Para mapear a variável:
- Modo de diagrama: adicione
jsonPayloadStringcomo 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;.
- Modo de diagrama: adicione
Adicione um cabeçalho Content-Type personalizado
- 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" };
- Modo de diagrama: adicione uma entrada constante com o valor
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.