Cómo acceder al contenido a través de las API de entrega de AEM access-your-content
En esta parte del Recorrido para desarrolladores de contenido de AEM sin encabezado, puede aprender a utilizar las consultas de GraphQL para acceder al contenido de sus fragmentos de contenido y alimentarlo en su aplicación (entrega sin encabezado).
La historia hasta ahora story-so-far
En el documento anterior del recorrido sin encabezado de 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 dicha estructura utilizando modelos de fragmentos de contenido de AEM y los fragmentos de contenido.
- Reconocer los conceptos y la terminología relacionados con el modelado de contenido.
- Comprender por qué el modelado de contenido es necesario para la entrega de contenido sin encabezado.
- Comprender cómo llevar a cabo esta estructura mediante modelos de fragmento de contenido de AEM (y crear contenido con fragmentos de contenido).
- Comprender cómo modelar el contenido; principios con muestras básicas.
Este artículo se centra en estos aspectos básicos para que entienda cómo acceder al contenido sin encabezado existente en AEM mediante GraphQL, la API de AEM.
-
Audiencia: principiante
-
Objetivo: aprender a acceder al contenido de los fragmentos de contenido mediante consultas en GraphQL de AEM.
- Introducción a GraphQL y a la API de AEM, GraphQL.
- Descubrir los detalles de la API de AEM, GraphQL.
- Observar algunas consultas de ejemplo para ver cómo funcionan las cosas en la práctica.
Acceso a su contenido? so-youd-like-to-access-your-content
Tiene mucho contenido bien estructurado (en fragmentos de contenido) para alimentar su nueva aplicación. La pregunta es: ¿cómo lograr eso?
Lo que necesita es una forma de segmentar el 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 entrega de contenido sin encabezado estructurado para utilizarlo en sus aplicaciones.
GraphQL: introducción graphql-introduction
GraphQL es una especificación de código abierto que proporciona lo siguiente:
- un lenguaje de consulta que permite seleccionar contenido específico de objetos estructurados.
- un tiempo de ejecución para realizar estas consultas con el contenido estructurado.
GraphQL es una API muy tipificada. Esto significa que todo el contenido debe estar claramente estructurado y organizado por tipo, para que GraphQL entienda a qué acceder y cómo hacerlo. Los campos de datos se definen dentro de esquemas de GraphQL, que definen la estructura de los objetos de contenido.
Los puntos finales 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 cuando se utiliza con AEM.
GraphQL, la API de AEM aem-graphql-api
La API de AEM, GraphQL, es una versión personalizada basada en la especificación estándar de la API 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.
- Un modelo de fragmento de contenido está formado por uno o más campos.
- Cada campo se define según el tipo de datos.
- Los modelos de fragmento de contenido se utilizan para generar los esquemas de GraphQL de AEM correspondientes.
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 directamente y probar consultas, también está disponible una implementación de la interfaz estándar de GraphiQL para utilizarse con GraphQL de AEM (esto se puede instalar con AEM). Proporciona funciones como resaltado de sintaxis, autocompletado o autosugerencia, junto con un historial y documentación en línea.
Fragmentos de contenido para su uso con GraphQL, la API de AEM content-fragments-use-with-aem-graphql-api
Los fragmentos de contenido se pueden usar como base para GraphQL para esquemas y consultas en AEM, puesto que:
- Permiten diseñar, crear, depurar y publicar contenido independiente de las páginas que se puede entregar sin encabezado.
- Se basan en un modelo de fragmento de contenido que predefine la estructura del fragmento resultante mediante una selección de tipos de datos.
- Se pueden lograr capas de estructura adicionales con el tipo de datos Referencia a fragmento, disponible al definir un modelo.
Modelos de fragmento de contenido content-fragments-models
Estos modelos de fragmentos de contenido:
- Se utilizan para generar los esquemas una vez habilitados.
- Proporcionan los tipos de datos y campos requeridos para GraphQL. Se aseguran de que la aplicación solo solicita lo que es posible y recibe lo que se espera.
- El tipo de datos Referencias de fragmento se puede utilizar en el modelo para hacer referencia a otro fragmento de contenido y, por lo tanto, introducir niveles de estructura adicionales.
Referencias a fragmento fragment-references
La Referencia de fragmento:
-
Es un tipo de datos específico disponible cuando se define un modelo de fragmento de contenido.
-
Hace referencia a otro fragmento, según un modelo de fragmento de contenido específico.
-
Permite crear datos estructurados y luego recuperarlos.
- Cuando se define como multifuente, el fragmento principal puede hacer referencia (recuperar) a varios subfragmentos.
Previsualización de JSON json-preview
Para diseñar y desarrollar los modelos de fragmento de contenido, puede obtener una vista previa de la salida de JSON en el editor de fragmentos de contenido.
Utilización real de GraphQL, la API de AEM actually-using-aem-graphiql
Configuración inicial initial-setup
Antes de comenzar con consultas sobre el contenido, debe realizar lo siguiente:
-
Habilitar el punto final
- Uso de herramientas -> General -> GraphQL
- Activación del punto final de GraphQL
- Se habilitará también el IDE de GraphiQL.
Estructura de muestra sample-structure
Para utilizar GraphQL, la API de AEM en una consulta, podemos utilizar las dos estructuras básicas del modelo de fragmento de contenido:
-
Compañía
- Nombre: texto
- CEO (Persona): referencia de fragmento
- Empleados (personas): referencias de fragmento
-
Persona
- Nombre: texto
- Nombre: texto
Como puede ver, los campos CEO y Empleados hacen referencia a los fragmentos Persona.
Se utilizan los modelos de fragmento:
- al crear el contenido en el editor de fragmentos de contenido
- para generar los esquemas de GraphQL que se consultarán
Dónde probar las consultas where-to-test-your-queries
Las consultas se pueden introducir en la interfaz de GraphiQL. Puede acceder al editor de consultas desde:
- Herramientas > General > Editor de consultas de GraphQL
- directamente; por ejemplo,
http://localhost:4502/aem/graphiql.html
Introducción a las consultas getting-Started-with-queries
Una consulta sencilla es devolver el nombre de todas las entradas del esquema Compañía. Aquí puede solicitar una lista de todos los nombres de compañía:
query {
companyList {
items {
name
}
}
}
Una consulta un poco más compleja consiste en seleccionar todas las personas que no tengan el nombre de un “Trabajo”. Se filtrarán todas las personas que no tengan el nombre de un “Trabajo”. 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 se pueden crear consultas más complejas. Por ejemplo, realizar una consulta de todas las empresas que tengan al menos un empleado con el apellido “Smith”. Esta consulta ilustra el filtrado de cualquier persona con el apellido “Smith”, y devuelve información de todos los fragmentos anidados:
query {
companyList(filter: {
employees: {
_match: {
name: {
_expressions: [
{
value: "Smith"
}
]
}
}
}
}) {
items {
name
ceo {
name
firstName
}
employees {
name
firstName
}
}
}
}
Para obtener información completa sobre el uso de GraphQL, la API de AEM, junto con la configuración de los elementos necesarios, puede consultar lo siguiente:
- Formación para utilizar GraphQL con AEM
- La estructura de fragmento de contenido de muestra
- Formación para utilizar GraphQL con AEM: contenido y consultas de muestra
Siguientes pasos whats-next
Ahora que ha aprendido a acceder al contenido sin encabezado y consultarlo mediante la API de AEM GraphQL, puede aprender a utilizar la API REST para acceder al contenido de los fragmentos de contenido y actualizarlo.
Recursos adicionales additional-resources
-
Formación para utilizar GraphQL con AEM: contenido y consultas de muestra
-
Habilitación de la funcionalidad de fragmento de contenido en el explorador de la configuración
-
Comprender el uso compartido de recursos de origen cruzado (Cross-Origin Resource Sharing, CORS)
-
Consultas persistentes de GraphQL: habilitar el almacenamiento en caché en Dispatcher
-
Generación de los tókenes de acceso para las API del servidor
-
Introducción a AEM sin encabezado: una breve serie de tutoriales de vídeo que ofrecen información general sobre el uso de las funciones de AEM sin encabezado, incluidos el modelado de contenido y GraphQL.