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.

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

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.

NOTE
Consulte GraphQL.org y GraphQL.com.

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.

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

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.

Vista previa de JSON

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:

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

Interfaz de GraphiQL

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

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab