Como atualizar seu conteúdo por meio das APIs do AEM Assets

Nesta parte da AEM Jornada do desenvolvedor sem cabeçalho, saiba como usar a REST API para acessar e atualizar o conteúdo dos Fragmentos de conteúdo.

A História Até Agora

No documento anterior da jornada sem cabeçalho AEM, Como acessar o conteúdo por meio AEM APIs de entrega você aprendeu a acessar o conteúdo sem periféricos no AEM por meio da API GraphQL AEM e agora deve:

  • Ter um alto nível de compreensão do GraphQL.
  • Entenda como a API GraphQL AEM funciona.
  • Entenda algumas consultas práticas de amostra.

Este artigo se baseia nesses fundamentos para que você entenda como atualizar o conteúdo headless existente no AEM por meio da REST API.

Objetivo

  • Público-alvo: Avançado
  • Objetivo: Saiba como usar a REST API para acessar e atualizar o conteúdo dos Fragmentos de conteúdo:
    • Apresente a API HTTP do AEM Assets.
    • Apresente e discuta o suporte ao Fragmento de conteúdo na API.
    • Ilustre detalhes da API.

Por que você precisa da API HTTP de ativos para o fragmento de conteúdo

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 do Assets permite Ler o seu conteúdo, mas também permite Criar, Atualizar e Eliminar 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 as a Cloud Service.

API HTTP de ativos

A API HTTP de ativos abrange:

  • API REST de ativos
  • incluindo suporte para Fragmentos de conteúdo

A implementação atual da API HTTP de ativos é baseada no REST estilo arquitetônico e permite acessar o conteúdo (armazenado em AEM) por meio de operações CRUD (Criar, Ler, Atualizar, Excluir).

Com essa operação, a API permite operar o Adobe Experience Manager as a Cloud Service 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.

API HTTP de ativos e fragmentos de conteúdo

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.

Uso da API REST de ativos

Acesso

A API REST do Assets usa o terminal /api/assets e requer o caminho do ativo para acessá-lo (sem o /content/dam à esquerda).

  • Isso significa que para acessar o ativo em:
    • /content/dam/path/to/asset
  • Você precisa solicitar:
    • /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

OBSERVAÇÃO

Acesso ao:

  • /api/assets não precisa do uso do .model seletor.
  • /content/path/to/page ​não requer o uso do .model seletor.

Operação

O método HTTP determina a operação a ser executada:

  • GET - para recuperar uma representação JSON de um ativo ou uma pasta
  • POST - para criar novos ativos ou pastas
  • PUT - para atualizar as propriedades de um ativo ou pasta
  • DELETE - para excluir um ativo ou uma pasta
OBSERVAÇÃO

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 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 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.

ATENÇÃO

A configuração do dispatcher em instâncias AEM nuvem pode bloquear o acesso a /api.

OBSERVAÇÃO

Para obter mais detalhes, consulte a Referência da API. Especificamente, API do Adobe Experience Manager Assets - Fragmentos de conteúdo.

Leitura/entrega

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:

  • Ao ler um fragmento de conteúdo específico por caminho, a representação JSON do fragmento de conteúdo é retornada.
  • Leitura de uma pasta de fragmentos de conteúdo por caminho: isso retorna as representações JSON de todos os fragmentos de conteúdo dentro da pasta.

Criar

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 propriedade 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á definido como application/json.

Atualizar

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.

Excluir

O uso é via:

DELETE /{cfParentPath}/{cfName}

Para obter mais detalhes sobre o uso da API REST do AEM Assets, consulte:

  • API HTTP do Adobe Experience Manager Assets (Recursos adicionais)
  • Suporte a fragmentos de conteúdo na API HTTP do AEM Assets (Recursos adicionais)

O que vem a seguir

Agora que você concluiu esta parte da Jornada de Desenvolvedores sem Cabeça da AEM, você deve:

  • Entenda as noções básicas da API HTTP do AEM Assets.
  • Entenda como os Fragmentos de conteúdo são compatíveis com essa API.

Você deve continuar sua jornada sem periféricos de AEM revisando o documento Como entrar em vigor com seu aplicativo sem periféricos, onde você realmente leva seu AEM projeto sem periféricos em tempo real!

Recursos adicionais

Nesta página