Consultas persistentes de GraphQL

Las consultas persistentes son consultas que se almacenan en el servidor de Adobe Experience Manager AEM (). Los clientes pueden enviar una solicitud HTTP con el nombre de la GET para ejecutarla. El beneficio de este enfoque es la accesibilidad. Aunque las consultas GraphQL del lado del cliente también se pueden ejecutar mediante solicitudes de POST HTTP, que no se pueden almacenar en caché, las consultas persistentes se pueden almacenar en caché mediante cachés HTTP o una CDN, lo que mejora el rendimiento. AEM Las consultas persistentes le permiten simplificar las solicitudes y mejorar la seguridad, ya que las consultas se encapsulan en el servidor y el administrador tiene un control total sobre ellas. AEM Es una práctica recomendada y muy recomendable usar consultas persistentes al trabajar con la API de GraphQL de la.

En el capítulo anterior, ha explorado algunas consultas avanzadas de GraphQL para recopilar datos para la aplicación WKND. AEM En este capítulo, persistirá en las consultas para que se utilicen y aprenderá a utilizar el control de caché en las consultas persistentes.

Requisitos previos prerequisites

Este documento forma parte de un tutorial de varias partes. Asegúrese de que el capítulo anterior se haya completado antes de continuar con este capítulo.

Objetivos objectives

En este capítulo, aprenderá a:

  • Persistir consultas de GraphQL con parámetros
  • Usar parámetros de control de caché con consultas persistentes

Revisar la configuración de Consultas persistentes de GraphQL

Revisemos que Consultas persistentes de GraphQL AEM están habilitadas para el proyecto del sitio WKND en su instancia de la.

  1. Vaya a Herramientas > General > Explorador de configuración.

  2. Seleccione WKND compartido y, a continuación, seleccione Propiedades en la barra de navegación superior para abrir las propiedades de configuración. En la página Propiedades de configuración, debería ver que el permiso Consultas persistentes de GraphQL está habilitado.

    Propiedades de configuración

Persistir consultas de GraphQL mediante la herramienta Explorador de GraphiQL integrada

En esta sección, vamos a mantener la consulta de GraphQL que se utiliza posteriormente en la aplicación cliente para recuperar y procesar los datos del fragmento de contenido de aventura.

  1. Introduzca la siguiente consulta en el Explorador de GraphiQL:

    code language-graphql
    query getAdventureDetailsBySlug($slug: String!) {
    adventureList(filter: {slug: {_expressions: [{value: $slug}]}}) {
        items {
        _path
        title
        activity
        adventureType
        price
        tripLength
        groupSize
        difficulty
        primaryImage {
            ... on ImageRef {
            _path
            mimeType
            width
            height
            }
        }
        description {
            html
            json
        }
        itinerary {
            html
            json
        }
        location {
            _path
            name
            description {
            html
            json
            }
            contactInfo {
            phone
            email
            }
            locationImage {
            ... on ImageRef {
                _path
            }
            }
            weatherBySeason
            address {
            streetAddress
            city
            state
            zipCode
            country
            }
        }
        instructorTeam {
            _metadata {
            stringMetadata {
                name
                value
            }
            }
            teamFoundingDate
            description {
            json
            }
            teamMembers {
            fullName
            contactInfo {
                phone
                email
            }
            profilePicture {
                ... on ImageRef {
                _path
                }
            }
            instructorExperienceLevel
            skills
            biography {
                html
            }
            }
        }
        administrator {
            fullName
            contactInfo {
            phone
            email
            }
            biography {
            html
            }
        }
        }
        _references {
        ... on ImageRef {
            _path
            mimeType
        }
        ... on LocationModel {
            _path
            __typename
        }
        }
    }
    }
    

    Compruebe que la consulta funciona antes de guardarla.

  2. A continuación, pulse Guardar como e introduzca adventure-details-by-slug como nombre de la consulta.

    Continuar consulta de GraphQL

Ejecución de consultas persistentes con variables mediante la codificación de caracteres especiales

Comprendamos cómo las consultas persistentes con variables se ejecutan en la aplicación del lado del cliente codificando los caracteres especiales.

Para ejecutar una consulta persistente, la aplicación cliente realiza una solicitud de GET utilizando la siguiente sintaxis:

GET <AEM_HOST>/graphql/execute.json/<Project-Config-Name>/<Persisted-Query-Name>

Para ejecutar una consulta persistente con una variable, la sintaxis anterior cambia a:

GET <AEM_HOST>/graphql/execute.json/<Project-Config-Name>/<Persisted-Query-Name>;variable1=value1;variable2=value2

Los caracteres especiales como punto y coma (;), signo igual (=), barras diagonales (/) y espacio deben convertirse para utilizar la codificación UTF-8 correspondiente.

Al ejecutar la consulta getAllAdventureDetailsBySlug desde el terminal de línea de comandos, se revisan estos conceptos en acción.

  1. Abra el Explorador de GraphiQL, haga clic en los puntos suspensivos (…) junto a la consulta persistente getAllAdventureDetailsBySlug y, a continuación, haga clic en Copiar URL. Pegue la URL copiada en un panel de texto y tenga el siguiente aspecto:

    code language-code
        http://<AEM_HOST>/graphql/execute.json/wknd-shared/getAllAdventureDetailsBySlug;slug=
    
  2. Agregar yosemite-backpacking como valor de variable

    code language-code
        http://<AEM_HOST>/graphql/execute.json/wknd-shared/getAllAdventureDetailsBySlug;slug=yosemite-backpacking
    
  3. Codifique los caracteres especiales punto y coma (;) y signo igual (=)

    code language-code
        http://<AEM_HOST>/graphql/execute.json/wknd-shared/getAllAdventureDetailsBySlug%3Bslug%3Dyosemite-backpacking
    
  4. Abra un terminal de línea de comandos y ejecute la consulta con Curl

    code language-shell
    $ curl -X GET http://<AEM_HOST>/graphql/execute.json/wknd-shared/getAllAdventureDetailsBySlug%3Bslug%3Dyosemite-backpacking
    
TIP
AEM Si se ejecuta la consulta anterior en el entorno de autor de la, debe enviar las credenciales. AEM Consulte Token de acceso de desarrollo local para ver una demostración del mismo y Llamar a la API de para obtener información sobre la documentación.

Además, revise Cómo ejecutar una consulta persistente, Usar variables de consulta y Codificar la URL de consulta para que la use una aplicación para aprender la ejecución de consultas persistentes por aplicaciones cliente.

Actualizar parámetros de control de caché en consultas persistentes cache-control-all-adventures

AEM La API de GraphQL le permite actualizar los parámetros predeterminados de control de caché a sus consultas para mejorar el rendimiento. Los valores predeterminados de control de caché son:

  • 60 segundos es el TTL predeterminado (máximo=60) para el cliente (por ejemplo, un explorador)

  • 7200 segundos es el TTL predeterminado (s-maxage=7200) para Dispatcher y CDN; también conocido como cachés compartidas

Utilice la consulta adventures-all para actualizar los parámetros de control de caché. La respuesta a la consulta es grande y resulta útil controlar su age en la caché. Esta consulta persistente se usa más adelante para actualizar la aplicación cliente.

  1. Abra el Explorador de GraphiQL, haga clic en los puntos suspensivos (…) junto a la consulta persistente y, a continuación, haga clic en Encabezados para abrir el modal Configuración de caché.

    Opción Persist GraphQL Header

  2. En el modal Cache Configuration, actualice el valor del encabezado max-age a 600 segundos (10 minutos) y luego haga clic en Guardar

    Conservar configuración de caché de GraphQL

Revise Almacenamiento en caché de las consultas persistentes para obtener más información sobre los parámetros predeterminados de control de caché.

Enhorabuena.

Enhorabuena. Ahora ha aprendido a hacer que persistan las consultas de GraphQL con parámetros, a actualizar las consultas persistentes y a utilizar parámetros de control de caché con consultas persistentes.

Pasos siguientes

En el capítulo siguiente, implementará las solicitudes para consultas persistentes en la aplicación WKND.

recommendation-more-help
e25b6834-e87f-4ff3-ba56-4cd16cdfdec4