Como atualizar seu conteúdo por meio das APIs do AEM Assets update-your-content

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.

A história até agora story-so-far

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:

  • Ter um alto nível de compreensão sobre GraphQL.
  • Entender como a API GraphQL do AEM funciona.
  • Conhecer alguns exemplos de consultas práticas.

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.

Objetivo objective

  • Público-alvo: avançado

  • Objetivo: aprender a usar a API REST para acessar e atualizar o conteúdo dos seus fragmentos de conteúdo:

    • Introdução à API HTTP do AEM Assets.
    • Apresentação e discussão sobre o suporte de fragmento de conteúdo da API.
    • Ilustração de detalhes da API.

Por que você precisa da API HTTP de ativos para fragmentos de conteúdo why-http-api

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 do Assets permite Ler o 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 do GraphQL.

A API REST do Assets está disponível em cada instalação pronta para uso de uma versão recente do Adobe Experience Manager.

API HTTP de ativos assets-http-api

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 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, Sistema de gerenciamento de conteúdo) headless, fornecendo Serviços de conteúdo a um aplicativo front-end do 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 assets-http-api-content-fragments

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.

Uso da API REST de ativos using-aem-assets-rest-api

Acesso access

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

  • 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

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

Operação operation

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

CAUTION
A configuração do dispatcher em instâncias AEM pode bloquear o acesso a /api.
NOTE
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.

Leitura/entrega read-delivery

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:

  • 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: retorna as representações JSON de todos os fragmentos de conteúdo contidos na pasta.

Criar create

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.

Atualizar o update

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.

Excluir delete

O uso é feito 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)
  • Compatibilidade com fragmentos de conteúdo na API HTTP do AEM Assets (recursos adicionais)

O que vem a seguir whats-next

Agora que concluiu esta parte da jornada de desenvolvedores headless do AEM, você deve:

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

Você deve continuar sua jornada sem periféricos de AEM revisando a seguir o documento Como entrar em operação com seu aplicativo sem periféricos onde você de fato coloca seu projeto com AEM sem periféricos em funcionamento!

Recursos adicionais additional-resources

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2