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

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.

A História Até Agora

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:

  • 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: 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 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 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 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 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 de ativos usa o /api/assets endpoint e requer o caminho do ativo para acessá-lo (sem a /content/dam).

  • 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, solicitação /api/assets/wknd/en/adventures/cycling-tuscany.json

OBSERVAÇÃO

Acesso ao:

  • /api/assets não a utilização da .model seletor.
  • /content/path/to/page does exigir a utilização da .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 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 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.

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. Em especial, API 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 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.

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 em seguida Como ativar seu aplicativo sem periféricos onde você leva seu AEM projeto Headless ao vivo!

Recursos adicionais

Nesta página