Nesta parte da jornada do desenvolvedor do AEM Headless, você pode aprender a modelar sua estrutura de conteúdo. Em seguida, estabeleça essa estrutura no Adobe Experience Manager (AEM) usando modelos de fragmentos de conteúdo e fragmentos de conteúdo, para a reutilização em outros canais.
No início, a seção Saiba mais sobre o desenvolvimento do CMS Headless abordou a entrega de conteúdo headless e por que ela deve ser usada. Em seguida, a Introdução ao AEM Headless descreveu o AEM Headless no contexto de seu próprio projeto.
No documento anterior da jornada do AEM Headless, Caminho para a sua primeira experiência utilizando o AEM Headless, você aprendeu as etapas necessárias para implementar seu primeiro projeto. Após ler esse documento, você deve:
Este artigo se baseia nesses fundamentos para que você entenda como preparar seu próprio projeto do AEM Headless.
A modelagem de dados é uma área muito grande, visto que é usada no desenvolvimento de bancos de dados relacionais. Há muitos livros e fontes de informação online disponíveis.
Somente consideraremos os aspectos que são de interesse na modelagem de dados para uso com o AEM Headless.
O mundo é grande e complexo.
Talvez sim, talvez não. O fato é que há um mundo grande e complicado de informações, e a modelagem de dados é usada para definir uma representação simplificada de uma parcela muito pequena disso, usando apenas as informações específicas que são necessárias para um determinado propósito.
Visto que o AEM cuida do conteúdo, chamados a modelagem de dados de Modelagem de conteúdo.
Por exemplo:
Existem muitas escolas, mas todas têm muitas coisas em comum:
Mesmo num exemplo tão pequeno, a lista pode parecer interminável. Mas se você quiser apenas que seu aplicativo execute uma tarefa simples, precisará limitar as informações ao essencial.
Por exemplo, para realizar a publicidade de eventos especiais para todas as escolas da área, as seguintes informações são necessárias:
O que você deseja descrever é chamado de Entidades, basicamente as “coisas” sobre as quais queremos armazenar informações.
As informações que queremos armazenar sobre elas são os Atributos (propriedades), como Nome e Qualificações para os professores.
Há várias Relações entre as entidades. Por exemplo, geralmente uma escola tem apenas um diretor e muitos professores (e geralmente o diretor também é professor).
O processo de análise e definição dessas informações, junto com as relações entre elas, é chamado de Modelagem de conteúdo.
Frequentemente, é necessário começar elaborando um Esquema conceitual que descreve as entidades e suas relações. Geralmente, é um esquema de alto nível (conceitual).
Depois que isso estiver estável, você pode traduzir os modelos em um Esquema lógico que descreve as entidades, juntamente com os atributos, e as relações. Nesse nível, você deve examinar as definições cuidadosamente para eliminar a duplicação e otimizar o design.
Às vezes, essas duas etapas são mescladas, frequentemente dependendo da complexidade do seu cenário.
Por exemplo, você precisa de entidades separadas para Head Teacher
e Teacher
ou simplesmente um atributo adicional no modelo Teacher
?
A integridade de dados é necessária para garantir a precisão e a consistência do conteúdo em todo o ciclo de vida. Isso inclui garantir que os autores de conteúdo possam entender facilmente o que armazenar, para que os itens a seguir sejam fundamentais:
A redundância de dados ocorre quando as mesmas informações são armazenadas duas vezes na estrutura de conteúdo. Isso deve ser evitado, pois pode gerar confusão na criação do conteúdo e erros na consulta; sem falar no mau uso do espaço de armazenamento.
Ao otimizar sua estrutura, você pode melhorar o desempenho, tanto para criação de conteúdo quanto para consultas.
Tudo é um ato de equilíbrio, mas a criação de uma estrutura muito complexa ou com muitos níveis, pode:
Ser confusa para os autores que geram o conteúdo.
Afetar bastante o desempenho se a consulta tiver que acessar vários Fragmentos de conteúdo aninhados (referenciados) para recuperar o conteúdo necessário.
A Modelagem de dados é um conjunto de técnicas estabelecidas, frequentemente usadas ao desenvolver bancos de dados de relacionamento. Então o que a Modelagem de conteúdo significa para o AEM Headless?
Para garantir que seu aplicativo possa solicitar e receber o conteúdo necessário do AEM de forma consistente e eficiente, esse conteúdo deve ser estruturado.
Isso significa que o aplicativo sabe antecipadamente a forma de resposta e, portanto, como processá-la. Isso é muito mais fácil do que receber conteúdo de forma livre, que deve ser analisado para determinar o que ele contém e, portanto, como pode ser usado.
O AEM usa Fragmentos de conteúdo para fornecer as estruturas necessárias para a entrega headless do conteúdo aos seus aplicativos.
A estrutura do modelo de conteúdo é:
Os Modelos de fragmento de conteúdo também são usados como a base dos Esquemas da GraphQL do AEM, usados para recuperar conteúdo. Falaremos mais sobre isso em uma próxima sessão.
As solicitações de conteúdo são feitas usando a API GraphQL do AEM, uma implementação personalizada da API GraphQL padrão. A API GraphQL do AEM permite realizar consultas (complexas) nos Fragmentos de conteúdo; cada uma dessas consultas está de acordo com um tipo de modelo específico.
O conteúdo retornado pode ser usado pelos seus aplicativos.
Os Modelos de fragmentos de conteúdo fornecem vários mecanismos que permitem definir a estrutura do conteúdo.
Um Modelo de fragmento de conteúdo descreve uma entidade.
Você deve ativar a funcionalidade de Fragmento de conteúdo no Navegador de configuração para criar novos modelos.
O modelo deve ser nomeado para que o autor de conteúdo saiba qual modelo selecionar ao criar um Fragmento de conteúdo.
Dentro de um modelo:
Por exemplo:
O AEM fornece os seguintes tipos de dados para você modelar o conteúdo:
Dois tipos de dados fornecem referências ao conteúdo fora de um fragmento específico:
Referência de conteúdo
Isso fornece uma referência simples a outro conteúdo de qualquer tipo.
Por exemplo, você pode fazer referência a uma imagem em um local especifico.
Referência de fragmento
Isso fornece referências a outros Fragmentos de conteúdo.
Esse tipo de referência é usado para criar conteúdo aninhado, introduzindo as relações necessárias para modelar o conteúdo.
O tipo de dados pode ser configurado para permitir que os autores de fragmento:
No início, é necessário ativar os Modelos de fragmento de conteúdo para o site. Isso é feito no Navegador de configuração; em Ferramentas -> Geral -> Navegador de configuração. Você pode optar por configurar a entrada global ou criar uma nova configuração. Por exemplo:
Consulte Recursos adicionais - Fragmentos de conteúdo no navegador de configuração
Em seguida, os Modelos de fragmentos de conteúdo podem ser criados e a estrutura definida. Isso pode ser feito em Ferramentas -> Ativos -> Modelos de fragmento de conteúdo. Por exemplo:
Consulte Recursos adicionais - Modelos de fragmento de conteúdo.
Fragmentos de conteúdo são sempre baseados em um Modelo de fragmento de conteúdo. O modelo fornece a estrutura, o fragmento retém o conteúdo.
A primeira etapa para realmente criar o conteúdo é criar um Fragmento de conteúdo. Isso é feito usando Criar -> Fragmento de conteúdo, na pasta requerida em Ativos -> Arquivos. O assistente o orienta pelas etapas.
Um Fragmento de conteúdo é baseado em um Modelo de fragmento de conteúdo específico, que pode ser selecionado como a primeira etapa do processo de criação.
Após a criação do fragmento, é possível abri-lo no Editor de fragmento de conteúdo. Aqui você pode:
Após selecionar o modelo apropriado, um fragmento de conteúdo é aberto para edição no editor de fragmento de conteúdo:
Consulte Recursos adicionais - Trabalhar com fragmentos de conteúdo.
Para ver uma estrutura básica de amostra, consulte Amostra da estrutura do fragmento de conteúdo.
Agora que você aprendeu a modelar a estrutura e criar um conteúdo que é dependente dela, a próxima etapa é Aprender a usar consultas GraphQL para acessar e recuperar conteúdo dos fragmentos de conteúdo. Essa seção introduz e analisa o GraphQL e, em seguida, apresenta algumas consultas de amostra para mostrar como as coisas funcionam na prática.