Cómo acceder al contenido a través de las API de envío de AEM

En esta parte del AEM Recorrido para desarrolladores 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

En el documento anterior del recorrido AEM sin encabezado, 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, darse cuenta de esa estructura utilizando AEM modelos de fragmentos de contenido y fragmentos de contenido:

  • Reconocer los conceptos y la terminología relacionados con el modelado de contenido.
  • Comprenda por qué el modelado de contenido es necesario para la entrega de contenido sin encabezado.
  • Obtenga información sobre cómo llevar a cabo esta estructura mediante AEM modelos de fragmento de contenido (y cree contenido con fragmentos de contenido).
  • Comprender cómo modelar el contenido; principios con muestras básicas.

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.

  • Audiencia: Principiante
  • Objetivo: Obtenga información sobre cómo acceder al contenido de los fragmentos de contenido mediante AEM consultas de GraphQL:
    • Presente GraphQL y la API de AEM GraphQL.
    • Descubra los detalles de la API de AEM GraphQL.
    • Observe algunas consultas de ejemplo para ver cómo funcionan las cosas en la práctica.

¿Le gustaría acceder a su contenido?

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) como Cloud Service, puede acceder selectivamente a sus fragmentos de contenido mediante la API de GraphQL de AEM para devolver solo el contenido que necesita. Esto significa que puede realizar envíos sin objetivos de contenido estructurado para utilizarlo en sus aplicaciones.

NOTA

AEM API de GraphQL es una implementación personalizada, basada en la especificación estándar de la API de GraphQL.

GraphQL: Introducción

GraphQL es una especificación de código abierto que proporciona:

  • 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 con tipos de inflexible. Esto significa que el contenido de todo debe estar claramente estructurado y organizado por tipo, de modo que GraphQL entienda a 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.

NOTA

Consulte GraphQL.org y GraphQL.com.

API de AEM GraphQL

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.

  • Un modelo de fragmento de contenido está formado por uno o más campos.
    • Cada campo se define según un Tipo de datos.
  • Los modelos de fragmento de contenido se utilizan para generar los esquemas AEM de GraphQL 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 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.

NOTA

La implementación de la API de AEM GraphQL se basa en las bibliotecas Java de GraphQL.

Fragmentos de contenido para usar con la API de AEM GraphQL

Los fragmentos de contenido se pueden usar como base para GraphQL para AEM esquemas y consultas como:

  • Permiten diseñar, crear, depurar y publicar contenido independiente de las páginas que se pueda entregar sin problemas.
  • 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 de fragmento , disponible al definir un modelo.

Modelos de fragmento de contenido

Estos modelos de fragmento de contenido:

  • Se utilizan para generar los esquemas, una vez Enabled.
  • Proporcione 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 usar en el modelo para hacer referencia a otro fragmento de contenido y, por lo tanto, introducir niveles adicionales de estructura.

Referencias de fragmento

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

    • Cuando se define como una fuente múltiple, el fragmento principal puede hacer referencia (recuperar) a varios subfragmentos.

Vista previa de JSON

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.

Vista previa de JSON

Uso real de la API de AEM GraphQL

Configuración inicial

Antes de comenzar con consultas sobre el contenido, debe:

Estructura de muestra

Para utilizar la API de AEM GraphQL en una consulta, podemos utilizar las dos estructuras básicas del Modelo de fragmento de contenido:

  • Empresa
    • Nombre - Texto
    • CEO (Persona): referencia de fragmento
    • Empleados (personas) - Referencia de fragmento
  • Person
    • Nombre - Texto
    • Nombre - Texto

Como puede ver, los campos CEO y Empleados hacen referencia a los fragmentos Persona .

Se utilizarán los modelos de fragmento:

  • al crear el contenido en el editor de fragmentos de contenido
  • para generar los esquemas de GraphQL que vaya a consultar

Dónde probar las consultas

Las consultas se pueden introducir en la interfaz de GraphiQL, por ejemplo en:

  • http://localhost:4502/content/graphiql.html

Interfaz

Introducción a las consultas

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:

  • Aprender a usar GraphQL con AEM
  • La estructura de fragmento de contenido de ejemplo
  • Aprender a utilizar GraphQL con AEM: contenido de muestra y consultas

Siguientes

Ahora que ha aprendido a acceder y consultar el contenido sin encabezado mediante la API de AEM GraphQL, ahora puede aprender a utilizar la API de REST para acceder y actualizar el contenido de sus fragmentos de contenido.

Recursos adicionales

En esta página