En esta parte del AEM Recorrido para desarrolladores sin encabezado, puede aprender a utilizar las consultas de GraphQL para acceder al contenido de los fragmentos de contenido y alimentarlo en la aplicación (entrega sin encabezado).
Algunas de sus funcionalidades están disponibles en el canal de prelanzamiento. En concreto, la funcionalidad relacionada con las consultas persistentes.
Consulte la Documentación del canal de prelanzamiento para obtener información sobre cómo habilitar la función para su entorno.
En el documento anterior del recorrido sin AEM, Cómo modelar el contenido ha aprendido los conceptos básicos del modelado de contenido en AEM, por lo que ahora debe comprender cómo modelar la estructura de contenido y, a continuación, comprender esa estructura utilizando AEM modelos de fragmentos de contenido y fragmentos de contenido:
Este artículo se basa en estos aspectos básicos para que pueda comprender cómo acceder al contenido sin encabezado existente en AEM mediante la API de GraphQL de AEM.
Así que…tiene todo este contenido, bien estructurado (en fragmentos de contenido) y esperando para alimentar su nueva aplicación. La pregunta es: ¿cómo llegar allí?
Lo que necesita es una forma de segmentar contenido específico, seleccionar lo que necesita y devolverlo a su aplicación para un procesamiento posterior.
Con Adobe Experience Manager (AEM) as a Cloud Service, puede acceder de forma selectiva a los fragmentos de contenido mediante la API de AEM GraphQL para devolver solo el contenido que necesite. Esto significa que puede realizar envíos sin objetivos de contenido estructurado para utilizarlo en sus aplicaciones.
AEM API de GraphQL es una implementación personalizada, basada en la especificación estándar de la API de GraphQL.
GraphQL es una especificación de código abierto que proporciona:
GraphQL es un strong API escrita. Esto significa que all el contenido debe estar claramente estructurado y organizado por tipo, de modo que GraphQL comprende qué acceder y cómo hacerlo. Los campos de datos se definen en los esquemas de GraphQL, que definen la estructura de los objetos de contenido.
Los extremos de GraphQL proporcionan las rutas que responden a las consultas de GraphQL.
Todo esto significa que la aplicación puede seleccionar de forma precisa, fiable y eficaz el contenido que necesita, justo lo que necesita cuando se utiliza con AEM.
Consulte GraphQL.org y GraphQL.com.
La API de AEM GraphQL es una versión personalizada basada en la especificación estándar de la API de GraphQL, especialmente configurada para permitirle realizar consultas (complejas) en los fragmentos de contenido.
Se utilizan fragmentos de contenido, ya que el contenido está estructurado según los modelos de fragmento de contenido. Esto cumple un requisito básico de GraphQL.
Para acceder realmente a GraphQL para AEM (y el contenido) se utiliza un punto final para proporcionar la ruta de acceso.
El contenido devuelto, a través de la API de AEM GraphQL, puede ser utilizado por sus aplicaciones.
Para ayudarle a introducir y probar consultas directamente, también está disponible una implementación de la interfaz estándar de GraphiQL para su uso con AEM GraphQL (esto se puede instalar con AEM). Proporciona funciones como resaltado de sintaxis, autocompletado, autosugerencia, junto con un historial y documentación en línea.
La implementación de la API de AEM GraphQL se basa en las bibliotecas Java de GraphQL.
Los fragmentos de contenido se pueden usar como base para GraphQL para AEM esquemas y consultas como:
Estos modelos de fragmento de contenido:
La variable Referencia de fragmento:
Es un tipo de datos específico disponible al definir un modelo de fragmento de contenido.
Hace referencia a otro fragmento, según un modelo de fragmento de contenido específico.
Permite crear y recuperar datos estructurados.
Para ayudar a diseñar y desarrollar los modelos de fragmento de contenido, puede obtener una vista previa del resultado de JSON en el Editor de fragmentos de contenido.
Antes de comenzar con consultas sobre el contenido, debe:
Habilitar el punto final
Instale GraphiQL (si es necesario)
Para utilizar la API de AEM GraphQL en una consulta, podemos utilizar las dos estructuras básicas del Modelo de fragmento de contenido:
Como puede ver, los campos CEO y Empleados hacen referencia a los fragmentos Persona .
Se utilizarán los modelos de fragmento:
Las consultas se pueden introducir en la interfaz de GraphiQL. Puede acceder al editor de consultas desde:
http://localhost:4502/aem/graphiql.html
Una consulta directa es devolver el nombre de todas las entradas del esquema Company. Aquí puede solicitar una lista de todos los nombres de compañía:
query {
companyList {
items {
name
}
}
}
Una consulta ligeramente más compleja es seleccionar todas las personas que no tienen un nombre de "Trabajos". Esto filtrará todas las personas para aquellas que no tengan el nombre Trabajos. Esto se logra con el operador EQUALS_NOT (hay muchos más):
query {
personList(filter: {
name: {
_expressions: [
{
value: "Jobs"
_operator: EQUALS_NOT
}
]
}
}) {
items {
name
firstName
}
}
}
También puede crear consultas más complejas. Por ejemplo, realice una consulta a todas las empresas que tengan al menos un empleado con el nombre "Smith". Esta consulta ilustra el filtrado para cualquier persona de nombre "Smith", que devuelve información de los fragmentos anidados:
query {
companyList(filter: {
employees: {
_match: {
name: {
_expressions: [
{
value: "Smith"
}
]
}
}
}
}) {
items {
name
ceo {
name
firstName
}
employees {
name
firstName
}
}
}
}
Para obtener toda la información sobre el uso de la API de AEM GraphQL, junto con la configuración de los elementos necesarios, puede hacer referencia a:
Ahora que ha aprendido a acceder y consultar el contenido sin encabezado mediante la API de AEM GraphQL, ahora puede obtenga información sobre cómo utilizar la API de REST para acceder y actualizar el contenido de los fragmentos de contenido.