Processamento de APIs síncronas das comunicações do AEM Forms as a Cloud Service
Este guia fornece instruções abrangentes para configurar e usar as APIs síncronas de comunicações da AEM Forms.
Saiba como configurar seu ambiente do AEM as a Cloud Service, habilitar o acesso à API e chamar APIs de comunicação usando a autenticação de servidor para servidor OAuth.
Pré-requisitos
Para configurar um ambiente para executar e testar as APIs de comunicações do AEM Forms, verifique se você tem o seguinte:
Acesso e permissões
Verifique se você tem os direitos de acesso e as permissões necessários antes de começar a configurar as APIs de comunicações.
Permissões de usuário e função
- Adobe ID criado em https://account.adobe.com/
- Adobe ID associado ao email de sua organização
- Contexto de produto do Adobe Managed Services atribuído
- Função de desenvolvedor atribuída na Adobe Admin Console
- Permissão para criar projetos no Adobe Developer Console
Acesso ao Cloud Manager
- Credenciais de logon para Cloud Manager
- Acesso para visualizar e gerenciar os ambientes do seu programa
- Permissão para criar e executar pipelines de CI/CD
- Acesso aos detalhes e à configuração do ambiente
Acesso ao Repositório Git
- Acesso ao repositório Git do Cloud Manager
- Credenciais do Git para clonagem e envio de alterações
Ferramentas de desenvolvimento
- Node.js para executar aplicativos de exemplo
- Última versão do Git
- Acesso a Terminal/Linha de comando
- Editor de texto ou IDE para editar arquivos de configuração (Código VS, IntelliJ etc.)
- Postman ou ferramenta semelhante para teste de API
Agora vamos entender cada etapa em detalhes.
Etapa 1: atualizar instância do AEM
Para atualizar a instância do AEM:
-
Faça logon no Adobe Cloud Manager
- Navegue até my.cloudmanager.adobe.com
- Faça logon com sua Adobe ID
-
Navegue até a Visão Geral do Programa
- Selecione seu programa na lista. Você será redirecionado para a página Visão geral do programa
-
Localizar Detalhes do Ambiente
-
Selecione o ícone
ellipsis(…) ao lado do nome do ambiente e clique em Atualizar -
Clique no botão Enviar e execute o pipeline de pilha completa sugerido.
-
Etapa 2: clonar repositório Git
Clonar o Repositório Git do Cloud Manager para gerenciar os arquivos de configuração da API.
-
Localizar a Seção Repositório
-
Na página Visão geral do programa, clique na guia Repositórios
-
Localize o nome do repositório e clique no menu de reticências (…)
-
Copiar o URL do repositório
note note NOTE Normalmente, o formato da URL é https://git.cloudmanager.adobe.com/<org>/<program>/
-
-
Clonar Usando o Comando Git
-
Abra o prompt de comando ou o terminal
-
Execute o comando
git clonepara clonar o repositório Git.code language-bash git clone [repository-url]note note NOTE Para clonar o repositório Git, use as credenciais fornecidas pelo Adobe Cloud Manager. Por exemplo, para clonar o repositório Git, execute o seguinte comando:
code language-bash https://git.cloudmanager.adobe.com/formsinternal01/AEMFormsInternal-ReleaseSanity-p43162-uk59167/
-
Opções de Integração do Repositório Git
O Adobe Cloud Manager é compatível com ambas as opções de repositório:
-
Uso direto do Repositório Git da Cloud Manager
- Usar o repositório Git nativo do Cloud Manager
- Integração integrada com pipelines
-
Integração com o Repositório Git gerenciado pelo cliente
- Conecte seu próprio repositório Git (GitHub, GitLab, Bitbucket etc.)
- Configurar sincronização com o Adobe Cloud Manager
Para saber mais sobre como integrar o Adobe Cloud Manager e o Adobe Cloud Manager, consulte Documentação de integração do Git.
Etapa 3: Acessar o ambiente do AEM Cloud Service e o terminal AEM Forms
Acesse os detalhes do ambiente do AEM Cloud Service para obter os URLs e os identificadores necessários para a configuração da API.
-
Faça logon no Adobe Cloud Manager
- Navegue até my.cloudmanager.adobe.com
- Faça logon com sua Adobe ID
-
Navegue até a Visão Geral do Programa
Selecione seu programa na lista. Você será redirecionado para a página Visão geral do programa -
Acessar e exibir o ambiente do AEM Cloud Service
Você pode visualizar ou acessar os detalhes do Ambiente do AEM Cloud Service usando uma das duas opções:
-
Opção 1: Na Página Visão Geral
-
Na página Visão geral do programa
-
Clique em "Ambientes" no menu do lado esquerdo. É possível ver uma lista de todos os ambientes
-
Clique no nome do ambiente específico para exibir os detalhes
-
-
Opção 2: Da Seção Ambientes
-
Na página Visão geral do programa
-
Localize a seção Ambientes
-
Clique em "Mostrar tudo" para exibir todos os ambientes
-
Clique no menu de reticências (…) ao lado do ambiente
-
Selecione "Exibir Detalhes"
-
-
-
Localizar seu Ponto de Extremidade do AEM Forms
Na página de detalhes do Ambiente, observe os seguintes detalhes:
URL de Serviço do Autor
- URL:
https://author-pXXXXX-eYYYYY.adobeaemcloud.com - Balde: author-pXXXXX-eYYYY
Exemplo:https://author-p43162-e177398.adobeaemcloud.com
URL do Serviço de Publicação
- URL:
https://publish-pXXXXX-eYYYYY.adobeaemcloud.com - Compartimento: publish-pXXXXX-eYYYY
Exemplo:https://publish-author-p43162-e177398.adobeaemcloud.com
- URL:
Etapa 4: configuração de acesso à API
Execute as seguintes etapas para configurar as APIs de comunicações do AEM Forms:
4.1 Configuração de projeto do Adobe Developer Console
-
Acessar o Adobe Developer Console
- Navegue até Adobe Developer Console
- Faça logon com sua Adobe ID
-
Criar novo projeto
-
Na seção Início rápido, clique em Criar novo projeto
-
Um novo projeto é criado com um nome padrão
-
Clique em Editar projeto no canto superior direito
-
Forneça um nome significativo (por exemplo, "formsproject")
-
Clique em Salvar
-
4.2 Adicionar APIs de comunicação do Forms
É possível adicionar diferentes APIs de comunicações do AEM Forms, dependendo de suas necessidades.
A Para APIs de Serviços de Documento
-
Clique em Adicionar API
-
Selecione as APIs de comunicação do Forms
- Na caixa de diálogo Adicionar API, filtre por Experience Cloud
- Selecione "APIs de comunicação do Forms"
-
Selecione o método de autenticação Servidor a Servidor do OAuth
B Para APIs do Forms Runtime
-
Clique em Adicionar API
- No seu projeto, clique no botão Adicionar API
-
Selecionar API de Entrega e Tempo de Execução do AEM Forms
- Na caixa de diálogo Adicionar API, filtre por Experience Cloud
- Selecione "API de Entrega e Tempo de Execução do AEM Forms"
- Clique em Avançar
-
Método de Autenticação
- Selecione o método de autenticação OAuth de servidor para servidor.
4.3 Adicionar perfil de produto
Siga estas etapas para adicionar o Perfil do produto:
-
Selecione o Perfil de Produto apropriado com base no nível de acesso necessário:
table 0-row-2 1-row-2 2-row-2 3-row-2 Tipo de acesso Perfil do produto Acesso somente leitura AEM Users - author - Program XXX - Environment XXXAcesso de leitura/gravação AEM Assets Collaborator Users - author - Program XXX - Environment XXXAcesso administrativo completo AEM Administrators - author - Program XXX - Environment XXX -
Selecione o Perfil do Produto que corresponda à URL do Serviço do Autor (
https://author-pXXXXX-eYYYYY.adobeaemcloud.com). Por exemplo: selecionehttps://author-pXXXXX-eYYYYY.adobeaemcloud.com. -
Clique em Salvar API configurada. A API e o Perfil de produto são adicionados ao seu projeto
4.4 Gerar e salvar credenciais
-
Acessar Suas Credenciais
- Navegar até o projeto no Adobe Developer Console
- Clique na credencial OAuth de servidor para servidor
- Exibir a seção Detalhes da credencial
-
Credenciais da API de registro
code language-text API Credentials: ================ Client ID: <your_client_id> Client Secret: <your_client_secret> Technical Account ID: <tech_account_id> Organization ID: <org_id> Scopes: AdobeID,openid,read_organizations
4.5 Geração de token de acesso
A Para Teste
Gerar tokens de acesso manualmente no Adobe Developer Console:
-
Navegar até o seu projeto
- No Adobe Developer Console, abra o projeto
- Clique em Servidor a servidor OAuth
-
Gerar token de acesso
- Clique no botão "Gerar token de acesso" na seção API do projeto
- Copiar o token de acesso gerado
note note NOTE O token de acesso é válido por 24 horas
B Para produção
Gerar tokens programaticamente usando a API do Adobe IMS:
Credenciais necessárias:
- ID do cliente
- Segredo do cliente
- Escopos (normalmente:
AdobeID,openid,read_organizations)
Ponto de Extremidade do Token:
https://ims-na1.adobelogin.com/ims/token/v3
Solicitação de Exemplo (curl):
curl -X POST 'https://ims-na1.adobelogin.com/ims/token/v3' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials' \
-d 'client_id=<YOUR_CLIENT_ID>' \
-d 'client_secret=<YOUR_CLIENT_SECRET>' \
-d 'scope=AdobeID,openid,read_organizations'
Resposta:
{
"access_token": "eyJhbGciOiJSUz...",
"token_type": "bearer",
"expires_in": 86399
}
4.6 Registrar ID do cliente no ambiente do AEM
Para permitir que a ID do cliente do projeto ADC se comunique com a instância do AEM, registre-a usando um arquivo de configuração YAML e implante-a por meio de um Pipeline de configuração.
-
Localizar ou Criar Diretório de Configuração
- Navegue até o repositório clonado do Projeto AEM e navegue até a pasta
config - Se ele não existir, crie-o no nível raiz do projeto:
code language-bash mkdir config - Navegue até o repositório clonado do Projeto AEM e navegue até a pasta
-
Crie um novo arquivo chamado
api.yamlno diretórioconfig:code language-bash touch config/api.yaml -
Adicionar o seguinte código no arquivo
api.yaml:code language-yaml kind: "API" version: "1" metadata: envTypes: ["dev"] # or ["prod", "stage"] for production environments data: allowedClientIDs: author: - "<your_client_id>" publish: - "<your_client_id>" preview: - "<your_client_id>"Veja a seguir uma explicação sobre os parâmetros de configuração:
-
kind: sempre definido como
"API"(identifica como uma configuração de API) -
versão: versão da API, normalmente
"1"ou"1.0" -
envTypes: matriz de tipos de ambiente à qual esta configuração se aplica
["dev"]- Somente ambientes de desenvolvimento["stage"]- Somente ambientes de preparo["prod"]- Somente ambientes de produção
-
allowedClientIDs: IDs do cliente com permissão para acessar sua instância do AEM
- author: IDs de Cliente para a camada de autor
- publicar: IDs de cliente para camada de publicação
- visualização: IDs de cliente para camada de visualização
Por exemplo, adicione o
allowedClientIDscomo6bc4589785e246eda29a545d3ca55980e envTypes comodev:
-
-
Confirmar e enviar alterações
- Navegue até a pasta raiz do repositório clonado e execute os comandos abaixo:
code language-bash git add config/api.yaml git commit -m "Whitelist client id for api invocation" git push origin <your-branch>
-
Pipeline de configuração de instalação
-
Fazer logon no Cloud Manager
- Navegue até my.cloudmanager.adobe.com
- Faça logon com sua Adobe ID
-
Navegar até o seu programa
Selecione seu programa na lista e você será redirecionado na página Visão geral do programa -
Localizar o Cartão Pipelines
- Localize o cartão Pipelines na página Visão geral do programa
- Clique no botão "Adicionar"
-
Selecionar tipo de pipeline
-
Para Ambientes De Desenvolvimento: Selecione "Adicionar Pipeline De Não Produção". Os pipelines de não produção são para ambientes de desenvolvimento e preparo
-
Para Ambientes De Produção: Selecione "Adicionar Pipeline De Produção". Pipelines de produção exigem aprovações adicionais
note note NOTE Nesse caso, crie um pipeline de não produção, pois um ambiente de desenvolvimento está disponível.
-
-
Configurar Pipeline - Guia Configuração
Na guia Configuração:
a. Tipo de pipeline
- Selecionar "Pipeline de Implantação"
b. Nome do pipeline
- Forneça um nome descritivo. Por exemplo, nomeie o pipeline como
api-config-pipieline
c. Acionador da implantação
- Manual: implantar somente quando acionado manualmente (recomendado para configuração inicial)
- Sobre Alterações do Git: implantação automática quando as alterações são enviadas para a ramificação
d. Comportamento de Falhas de Métricas Importantes
- Perguntar sempre: solicitar ação em caso de falhas (padrão)
- Falha imediata: falha automática no pipeline em falhas de métrica
- Continuar imediatamente: continuar apesar das falhas
e. Clique em "Continuar" para prosseguir para a guia Código Source
-
Configurar Pipeline - Guia Código Source
Na guia Source Code:
a. Tipo de implantação
- Selecione "Implantação direcionada"
b. Opções de implantação
- Selecione "Config" (implantar somente arquivos de configuração). Informa ao Cloud Manager que é uma implantação de configuração.
c. Selecionar Ambiente de Implantação Elegível
- Escolha o ambiente em que deseja implantar a configuração. Nesse caso, é um ambiente
dev.
d. Definir Detalhes do Código Source
- Repositório: selecione o repositório que contém seu arquivo
api.yaml. Por exemplo, selecione o repositórioAEMFormsInternal-ReleaseSanity-p43162-uk59167. - Ramificação Git: selecione sua ramificação. Por exemplo, nesse caso nosso código é implantado na ramificação
main. - Localização do Código: Insira o caminho para o diretório
config. Como oapi.yamlestá na pastaconfigda raiz, digite/config
e. Clique em "Salvar" para criar o pipeline
-
-
Implantar configuração
Agora que o pipeline foi criado, implante sua configuração
api.yaml:-
Da Visão Geral dos Pipelines
- Na página Visão geral do programa, localize o cartão Pipelines
- Navegue até o pipeline de configuração recém-criado na lista. Por exemplo, procure o nome do pipeline criado (por exemplo, "api-config-pipeline"). Você pode ver detalhes do pipeline, incluindo o status e a última execução.
-
Iniciar a Implantação
- Clique no botão "Compilação" (ou reproduza o ícone ▶) ao lado do seu pipeline
- Confirme a implantação, se solicitado, e a execução do pipeline começa
-
Verificar Implantação Bem-sucedida
-
Aguarde a conclusão do pipeline.
-
Se for bem-sucedido, o status mudará para "Sucesso" (marca de seleção verde ✓).
-
Se falhar, o status mudará para "Fail" (vermelho ✗). Clique em Baixar logs para exibir os detalhes do erro.
-
Agora, você pode começar a testar as APIs de comunicações do Forms. Para fins de teste, você pode usar o Postman, o curl ou qualquer outro cliente REST para chamar as APIs.
-
-
Etapa 5: Especificações da API e testes
Agora que seu ambiente está configurado, você pode começar a testar as APIs de comunicação do AEM Forms usando a interface do usuário do Swagger ou de forma programática desenvolvendo o aplicativo NodeJS.
Neste exemplo, vamos gerar uma PDF usando as APIs de serviços de documento com o modelo e o arquivo XDP.
A. Utilização da interface do usuário do Swagger para testes de API
A interface do Swagger fornece uma interface interativa para APIs de teste sem gravar código. Use o recurso Experimentar para invocar e testar a API de Serviço de Documento gerar PDF.
-
Navegue até a documentação da API
- API Forms: Referência da API Forms
- Serviços de documento: Referência da API de serviços de documento
Abra a documentação das APIs de serviços de documento em seu navegador.
-
Expanda a seção Geração de Documento e selecione Gera um formulário do PDF preenchível a partir de um modelo XDP ou PDF, opcionalmente com a mesclagem de dados.
-
No painel direito, clique em Experimente.
-
Insira os seguintes valores:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Seção Parâmetro Valor balde Instância do AEM Nome da instância do AEM sem o nome de domínio do Adobe ( .adobeaemcloud.com) Por exemplo, usep43162-e177398como bucket.Segurança Token de portador Usar o token de acesso da credencial OAuth Server-to-Server do projeto do Adobe Developer Console Corpo modelo Carregue um XDP para gerar o formulário do PDF. Por exemplo, você pode usar este XDP para gerar um PDF. Corpo dados Um arquivo XML opcional que contém os dados a serem mesclados com o modelo para gerar um formulário PDF pré-preenchido. Por exemplo, você pode usar este XML para gerar um PDF. Parâmetros X-Adobe-Accept-Experimental 1 -
Clique em Enviar para invocar a API
-
Verifique a resposta na guia Resposta:
- Se o código de resposta for
200, significa que o PDF foi criado com êxito. - Se o código de resposta for
400, significa que os parâmetros da solicitação são inválidos ou malformados. - Se o código de resposta for
500, significa que há um erro interno do servidor.
Nesse caso, o código de resposta é
200, isso significa que o PDF foi gerado com êxito:
Agora você pode baixar o PDF criado usando o botão Baixar e exibi-lo no visualizador do PDF:
- Se o código de resposta for
B. Programaticamente desenvolvendo o aplicativo NodeJS
Desenvolva um aplicativo Node.js para gerar um formulário do PDF preenchível a partir de um modelo XDP e um arquivo de dados XML usando a API de Serviços de Documento
Pré-requisitos
- Node.js instalado em seu sistema
- Instância ativa do AEM as a Cloud Service
- Token de portador para autenticação de API do Adobe Developer Console
- Arquivo XDP de Exemplo: ClosingForm.xdp
- Arquivo XML de Exemplo: ClosingForm.xml
Para desenvolver o aplicativo Node.js, siga o passo a passo do desenvolvimento:
Etapa 1: criar um novo projeto Node.js
Abra o cmd/terminal e execute os comandos abaixo:
# Create a new directory
mkdir demo-nodejs-generate-pdf
cd demo-nodejs-generate-pdf
##### Initialize Node.js project
npm init -y
Etapa 2: Instalar Dependências Necessárias
Instale as bibliotecas node-fetch, dotenv e form-data para fazer solicitações HTTP, ler variáveis de ambiente e manipular dados de formulário, respectivamente.
npm install node-fetch
npm install dotenv
npm install form-data
Etapa 3: atualizar package.json
-
Abra o cmd/terminal e execute o comando:
code language-bash code .
Ele abre o projeto no editor de código.
-
Atualize o arquivo
package.jsonpara adicionartypeamodule.code language-bash { "name": "demo-nodejs-generate-pdf", "version": "1.0.0", "type": "module", "main": "index.js", }
Etapa 4: criar um arquivo .env
-
Criar arquivo .env no nível raiz de um projeto
-
Adicione a configuração a seguir e substitua os espaços reservados pelos valores reais da credencial servidor a servidor OAuth do projeto ADC.
code language-bash CLIENT_ID=<ADC Project OAuth Server-to-Server credential ClientID> CLIENT_SECRET=<ADC Project OAuth Server-to-Server credential Client Secret> SCOPES=<ADC Project OAuth Server-to-Server credential Scopes>
note note NOTE Você pode copiar o CLIENT_ID,CLIENT_SECRETeSCOPESdo projeto do Adobe Developer Console.
Etapa 5: Criar src/index.js
- Criar arquivo
index.jsno nível raiz do projeto - Adicione o código a seguir e substitua os espaços reservados pelos valores reais:
// Import the dotenv configuration to load environment variables from the .env file
import "dotenv/config";
// Import fetch for making HTTP requests
import fetch from "node-fetch";
import fs from "fs";
import FormData from "form-data";
// REPLACE THE FOLLOWING VALUE WITH YOUR OWN
const bucket = <bucket-value>; // Your AEM Cloud Service Bucket name
const xdpFilePath = <xdp-file>;
const xmlFilePath = <xml-file>;
// Load environment variables
const clientId = process.env.CLIENT_ID;
const clientSecret = process.env.CLIENT_SECRET;
const scopes = process.env.SCOPES;
// Adobe IMS endpoint for obtaining an access token
const adobeIMSV3TokenEndpointURL = "https://ims-na1.adobelogin.com/ims/token/v3";
// Function to get an access token
const getAccessToken = async () => {
console.log("Getting access token from IMS...");
const options = {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
body: `grant_type=client_credentials&client_id=${clientId}&client_secret=${clientSecret}&scope=${scopes}`,
};
const response = await fetch(adobeIMSV3TokenEndpointURL, options);
const responseJSON = await response.json();
console.log("Access token received.");
return responseJSON.access_token;
};
// Function to generate PDF form from XDP and XML
const generatePDF = async () => {
const accessToken = await getAccessToken();
console.log("Generating PDF form from XDP and XML...");
// Read XDP and XML files
const xdpFile = fs.readFileSync(xdpFilePath);
const xmlFile = fs.readFileSync(xmlFilePath);
const url = `https://${bucket}.adobeaemcloud.com/adobe/document/generate/pdfform`;
const formData = new FormData();
formData.append("template", xdpFile, {
filename: "form.xdp",
contentType: "application/vnd.adobe.xdp+xml"
});
formData.append("data", xmlFile, {
filename: "data.xml",
contentType: "application/xml"
});
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
"X-Api-Key": clientId,
"X-Adobe-Accept-Experimental": "1",
...formData.getHeaders()
},
body: formData,
});
if (response.ok) {
const arrayBuffer = await response.arrayBuffer();
fs.writeFileSync("generatedForm.pdf", Buffer.from(arrayBuffer));
console.log("✅ PDF form generated successfully (saved as generatedForm.pdf)");
} else {
console.error("❌ Failed to generate PDF. Status:", response.status);
console.error(await response.text());
}
};
// Run the PDF generation function
generatePDF();
Etapa 6: Executar o aplicativo
node src/index.js
O PDF é criado na pasta demo-nodejs-generate-pdf. Navegue até a pasta para localizar o arquivo gerado chamado generatedForm.pdf.
Você pode abrir o PDF gerado para exibi-lo.
Resolução de problemas
Problemas comuns e possíveis causas
Problema 1: Erro 403 proibido
Sintomas:
- As solicitações de API retornam
403 Forbidden - Mensagem de erro: Acesso negado ou Permissões insuficientes
- Ocorre mesmo com um token de acesso válido
Causas possíveis:
- Permissões insuficientes no Perfil de produto vinculado à credencial OAuth de servidor para servidor
- O grupo de usuários de serviço no AEM Author não tem as permissões necessárias nos caminhos de conteúdo necessários
Problema 2: Erro 401 não autorizado
Sintomas:
- As solicitações de API retornam
401 Unauthorized - Mensagem de erro: Token inválido ou expirado
Causas possíveis:
- Token de acesso expirado (válido por apenas 24 horas)
- ID do cliente e segredo do cliente incorretos ou incompatíveis
- Cabeçalhos de autenticação ausentes ou malformados na solicitação de API
Problema 3: Erro 404 não encontrado
Sintomas:
- As solicitações de API retornam
404 Not Found - Mensagem de erro: Recurso não encontrado ou Ponto de extremidade de API não encontrado
Causas possíveis:
- ID do cliente não registrada na configuração
api.yamlda instância do AEM - Parâmetro de bucket incorreto (não corresponde ao identificador de instância do AEM)
- ID de recurso inválida ou inexistente (formulário ou ativo)
Problema 4: Opção de autenticação de servidor para servidor não disponível
Sintomas:
- A opção OAuth Server-to-Server está ausente ou desabilitada no Adobe Developer Console
Causa possível:
- O usuário que está criando a integração não foi adicionado como um Desenvolvedor no Perfil de Produto associado
Problema 5: Falha na implantação do pipeline
Sintomas:
- Falha na execução do Pipeline de configuração
- Os logs de implantação mostram erros relacionados a
api.yaml
Causas possíveis:
- Sintaxe YAML inválida (problemas de recuo, aspas ou formato de matriz)
api.yamlfoi colocado no diretório incorreto- ID do cliente malformada ou incorreta na configuração
Artigos relacionados
Para saber como configurar o ambiente para Batch (APIs assíncronas), consulte Processamento em Lote das Comunicações do AEM Forms as a Cloud Service.