Nesta parte da jornada do desenvolvedor headless do AEM, saiba como usar a API REST para acessar e atualizar o conteúdo dos seus fragmentos de conteúdo.
No documento anterior da jornada headless do AEM, Como acessar seu conteúdo por meio das APIs de entrega do AEM, você aprendeu a acessar o conteúdo headless no AEM por meio da API GraphQL do AEM; agora você deve:
Este artigo se baseia nesses fundamentos para que você entenda como atualizar o seu conteúdo headless existente no AEM por meio da API REST.
No estágio anterior da jornada headless, você aprendeu como usar a API GraphQL do AEM para recuperar o conteúdo usando consultas.
Então, por que é necessária outra API?
A API HTTP de ativos permite ler seu conteúdo, mas também permite 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 versões recentes do Adobe Experience Manager
A API HTTP de ativos abrange:
A implementação atual da API HTTP de ativos é baseada no estilo de arquitetura REST e permite que você acesse o conteúdo (armazenado no AEM) por meio de operações CRUD (criar, ler, atualizar, excluir).
Com essas operações, a API permite operar o Adobe Experience Manager como um CMS (Content Management System) headless, 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.
Os fragmentos de conteúdo são usados para entrega headless e são 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 ponto de acesso /api/assets
e necessita do caminho do ativo para acessá-lo (sem o /content/dam
inicial).
/content/dam/path/to/asset
/api/assets/path/to/asset
Por exemplo, para acessar /content/dam/wknd/en/adventures/cycling-tuscany
, solicite /api/assets/wknd/en/adventures/cycling-tuscany.json
O acesso por:
/api/assets
não precisa da utilização do seletor .model
./content/path/to/page
precisa da utilização do seletor .model
.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, definir que uma pasta ou um ativo deve ser criado por uma solicitação POST.
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 ambiente de autor ou de publicação no AEM, juntamente com seu caso de uso específico.
É altamente recomendável que a criação seja vinculada a uma instância de autor (e atualmente não há meios de replicar um fragmento para publicação usando essa API).
A entrega é possível de ambos os ambientes, pois o AEM apresenta o conteúdo solicitado somente no formato JSON.
Armazenar e entregar a partir de uma instância de autor do AEM deve ser o suficiente para aplicativos de biblioteca de mídia por trás do firewall.
Para entrega em tempo real na web, recomenda-se uma instância de publicação do 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, a seção API do Adobe Experience Manager Assets - Fragmentos de conteúdo.
O uso é feito via:
GET /{cfParentPath}/{cfName}.json
Por exemplo:
http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json
A resposta é em JSON serializado e o conteúdo é estruturado de acordo com o 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 é feito 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 propriedade cq:model
e ela 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
definido como application/json
.
O uso é feito via
PUT /{cfParentPath}/{cfName}
O corpo deve conter uma representação JSON referente ao que deve ser atualizado para o fragmento de conteúdo especificado.
Isso 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 é feito via:
DELETE /{cfParentPath}/{cfName}
Para obter mais detalhes sobre o uso da API REST do AEM Assets, consulte:
Agora que concluiu esta parte da jornada de desenvolvedores headless do AEM, você deve:
Você deve continuar sua jornada AEM headless revisando em seguida o documento Como fazer a ativação com seu aplicativo headless onde você realmente leva seu projeto AEM Headless ao vivo!