Nesta parte do AEM Jornada de desenvolvedor sem periféricos, saiba como usar a REST API para acessar e atualizar o conteúdo dos Fragmentos de conteúdo.
No documento anterior da jornada sem cabeçalho AEM, Como acessar seu conteúdo por meio AEM APIs de entrega você aprendeu a acessar seu conteúdo headless no AEM por meio da API GraphQL AEM e agora deve:
Este artigo se baseia nesses fundamentos para que você entenda como atualizar o conteúdo headless existente no AEM por meio da REST API.
No estágio anterior da Jornada Sem cabeçalho, você aprendeu a usar a API GraphQL da AEM para recuperar o conteúdo usando consultas.
Então, por que outra API é necessária?
A API HTTP de ativos permite Ler seu conteúdo, mas também permite que você Criar, Atualizar e Excluir conteúdo - ações que não são possíveis com a API GraphQL.
A API REST de ativos está disponível em cada instalação pronta para uso de uma versão recente do Adobe Experience Manager.
A API HTTP de ativos abrange:
A implementação atual da API HTTP de ativos é baseada no REST estilo de arquitetura e permite que você acesse o conteúdo (armazenado em AEM) por meio de CRUD operações (Criar, Ler, Atualizar, Excluir).
Com essa operação, a API permite operar o Adobe Experience Manager como um CMS (Content Management System) sem periféricos fornecendo serviços de conteúdo a um aplicativo front-end JavaScript. Ou qualquer outro aplicativo que possa executar solicitações HTTP e manipular respostas JSON. Por exemplo, Aplicativos de página única (SPA), baseados em estrutura ou personalizados, exigem conteúdo fornecido por meio de uma API, geralmente no formato JSON.
Fragmentos de conteúdo são usados para entrega sem cabeçalho, e um Fragmento de conteúdo é um tipo especial de ativo. Eles são usados para acessar dados estruturados, como textos, números, datas, entre outros.
A API REST de ativos usa o /api/assets
endpoint e requer o caminho do ativo para acessá-lo (sem a /content/dam
).
/content/dam/path/to/asset
/api/assets/path/to/asset
Por exemplo, para acessar /content/dam/wknd/en/adventures/cycling-tuscany
, solicitação /api/assets/wknd/en/adventures/cycling-tuscany.json
Acesso ao:
/api/assets
não a utilização da .model
seletor./content/path/to/page
does exigir a utilização da .model
seletor.O método HTTP determina a operação a ser executada:
O corpo da solicitação e/ou os parâmetros de URL podem ser usados para configurar algumas dessas operações; por exemplo, defina que uma pasta ou um ativo deve ser criado por um POST solicitação.
O formato exato das solicitações compatíveis é definido na documentação de Referência da API.
O uso pode ser diferente dependendo se você está usando um autor ou um ambiente de publicação AEM, juntamente com seu caso de uso específico.
É altamente recomendável que a criação seja vinculada a uma instância do autor (e atualmente não há como replicar um fragmento para publicar usando essa API).
A entrega é possível de ambos, pois AEM serve o conteúdo solicitado somente no formato JSON.
O armazenamento e o delivery de uma instância de autor de AEM devem ser suficientes para aplicativos de biblioteca de mídia por trás do firewall.
Para entrega na Web ao vivo, recomenda-se uma instância de publicação de AEM.
A configuração do dispatcher em instâncias AEM pode bloquear o acesso a /api
.
Para obter mais detalhes, consulte a Referência da API. Em especial, API Adobe Experience Manager Assets - Fragmentos de conteúdo.
O uso é via:
GET /{cfParentPath}/{cfName}.json
Por exemplo:
http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json
A resposta é JSON serializado com o conteúdo estruturado como no fragmento de conteúdo. As referências são fornecidas como URLs de referência.
Dois tipos de operações de leitura são possíveis:
O uso é via:
POST /{cfParentPath}/{cfName}
O corpo deve conter uma representação JSON do fragmento de conteúdo a ser criado, incluindo qualquer conteúdo inicial que deve ser definido nos elementos do fragmento de conteúdo. É obrigatório definir a variável cq:model
e deve apontar para um modelo de fragmento de conteúdo válido. Se isso não for feito, haverá um erro. Também é necessário adicionar um cabeçalho Content-Type
que está definida como application/json
.
O uso é via
PUT /{cfParentPath}/{cfName}
O corpo deve conter uma representação JSON do que deve ser atualizado para o fragmento de conteúdo especificado.
Pode ser simplesmente o título ou a descrição de um fragmento de conteúdo, um único elemento ou todos os valores e/ou metadados do elemento.
O uso é via:
DELETE /{cfParentPath}/{cfName}
Para obter mais detalhes sobre o uso da API REST do AEM Assets, consulte:
Agora que você concluiu esta parte da Jornada de Desenvolvedores sem Cabeça da AEM, você deve:
Você deve continuar sua jornada sem periféricos de AEM revisando o documento em seguida Como ativar seu aplicativo sem periféricos onde você leva seu AEM projeto Headless ao vivo!