Crear una API
Crear una APICreando una consulta persistida

Creando una consulta persistida

Una consulta persistida es una combinación de APIs GraphQL y REST: es una consulta GraphQL normal, publicada en el sitio y accedida bajo su propia URL, similar a un endpoint REST.

Por ejemplo, podemos exponer datos para una web mediante las siguientes consultas persistidas:

  • /graphql-query/homepage-posts
  • /graphql-query/user-widget
  • /graphql-query/post-content y ejecutarla pasando el ID de la entrada: ?post=1
  • /graphql-query/post-content/es para traducir el contenido de la entrada al español
  • Otras

Editor de consultas persistidas

Ejecutando la consulta persistida

Una vez publicada la consulta persistida, podemos ejecutarla mediante su permalink.

La consulta persistida puede ejecutarse directamente en el navegador, ya que se accede vía GET, y obtendremos los datos solicitados, en formato JSON:

Ejecutando una consulta persistida en el navegador

Ejecutando la consulta persistida en una aplicación

Por favor, sigue las instrucciones en la guía Conectando con el servidor GraphQL desde un cliente.

Accediendo a todas las consultas persistidas

Al hacer clic en "Persisted Queries" en el menú del plugin, se muestra la lista de todas las consultas persistidas creadas:

Consultas persistidas en el admin
Consultas persistidas en el admin

Creando una nueva consulta persistida

Haz clic en el botón "Add New GraphQL persisted query" para abrir el editor de WordPress:

Creando una consulta persistida

Asígnale un título y asegúrate de que el permalink es el esperado, introduce la consulta GraphQL, selecciona la configuración del esquema y ajusta las opciones. Cuando esté lista, haz clic en el botón Publicar, y el permalink se convierte en el endpoint de la consulta persistida.

El enlace al endpoint (y al código fuente) se muestra en el panel lateral "Persisted Query Endpoint Overview":

Persisted Query Endpoint Overview

Por defecto, el endpoint de la consulta persistida tiene la ruta /graphql-query/, y este valor es configurable a través de los Ajustes:

Ajustes de consultas persistidas
Ajustes de consultas persistidas

Editor de consultas

El cliente GraphiQL en el editor es donde se introduce la consulta GraphQL persistida:

El cliente GraphiQL de la consulta persistida

El editor viene con el add-on Explorer, que permite componer la consulta haciendo clic en los campos en el panel del lado izquierdo. Al hacer clic en el botón "Run" se ejecuta la consulta, para previsualizar la respuesta:

Componiendo una consulta persistida con el Explorer

Configuración del esquema

Definir quién puede acceder a los campos solicitados en la consulta persistida se define en la configuración del esquema.

Por tanto, debemos crear una configuración del esquema, y luego seleccionarla desde el desplegable (o no usar ninguna, o usar la predeterminada):

Seleccionando la configuración del esquema

Consultas persistidas privadas

Estableciendo el estado de la Consulta Persistida como privada, solo el usuario administrador puede acceder al endpoint. Esto evita que nuestros datos se compartan involuntariamente con usuarios que no deberían tener acceso a ellos.

Por ejemplo, podemos crear Consultas Persistidas privadas que ayuden a gestionar la aplicación, como recuperar datos para crear informes con nuestras métricas.

Consulta Persistida Privada

Consultas persistidas protegidas por contraseña

Si creamos una Consulta Persistida para un cliente específico, podemos asignarle una contraseña, para proporcionar un nivel adicional de seguridad de modo que solo ese cliente acceda al endpoint.

Consulta Persistida protegida por contraseña

Al acceder por primera vez a una consulta persistida protegida por contraseña, nos encontramos con una pantalla que solicita la contraseña:

Consulta Persistida protegida por contraseña: primer acceso

Una vez que se proporciona y valida la contraseña, solo entonces el usuario accederá al endpoint deseado.

Haciendo la consulta persistida dinámica vía parámetros de URL

El valor de cada variable puede establecerse mediante un parámetro de URL (con el nombre de la variable) al ejecutar la consulta persistida. Si la opción "Do URL params override variables?" está habilitada, entonces el parámetro de URL tendrá prioridad. De lo contrario, el valor definido en el diccionario de variables tendrá prioridad (si existe).

Por ejemplo, en esta consulta, el número de resultados se controla mediante la variable $limit, con un valor por defecto de 3:

Usando variables en una consulta persistida

Al ejecutar esta consulta persistida, pasando ?limit=5 se ejecutará la consulta devolviendo 5 resultados en su lugar:

Sobrescribiendo el valor de variables en una consulta persistida

Creando una jerarquía de consultas persistidas

Por favor, lee las instrucciones sobre crear una jerarquía de API.

Deshabilitando la consulta persistida

En las opciones, establece "Enabled" en false para deshabilitar la consulta persistida.

Esta característica puede ser útil cuando se hace que la consulta persistida forme parte de una jerarquía de API, para proporcionar un comportamiento común a sus consultas persistidas hijas, pero sin necesidad de que ella misma se ejecute.

Describiendo la consulta persistida

Usa el campo "Extracto", del panel de ajustes del documento, para dar una descripción a la consulta persistida.

Encuentra más información en la guía Añadiendo una descripción a la API.

Probando la consulta persistida antes de publicarla en línea

Una consulta persistida con estado borrador o pendiente está disponible solo para los usuarios editores del esquema.

Entonces, podemos crear una consulta persistida, asignarle una Configuración del Esquema, publicarla como borrador o pendiente, y probarla (por ejemplo: comprobando que sus reglas de Control de Acceso son apropiadas).

Una vez aprobada, solo entonces establecemos su estado como publicada, haciendo la consulta persistida disponible para todo el mundo.

Viendo el código fuente

Añadiendo ?view=source al endpoint, mostrará la configuración de la consulta persistida (siempre que el usuario esté autenticado y el rol de usuario tenga acceso a ella):

Código fuente de la consulta persistida


Configuración en el editor de WordPress

Estas son las entradas en el cuerpo del editor:

EntradaDescripción
TítuloTítulo de la consulta persistida
Cliente GraphiQLEditor para escribir y ejecutar la consulta GraphQL:
  • Escribe la consulta en el área de texto
  • Declara variables dentro de la consulta, y declara sus valores en el campo de variables en la parte inferior
  • Haz clic en el botón "Run" para ejecutar la consulta
  • Obtén los resultados en el campo del lado derecho
  • Haz clic en "Docs" para inspeccionar la información del esquema
El Explorer (mostrado solo si el módulo GraphiQL Explorer está habilitado) permite hacer clic en los campos, y estos se añaden automáticamente a la consulta
Configuración del esquemaDesde el desplegable, selecciona la configuración del esquema que se aplica a la consulta persistida, o una de estas opciones:
  • "Default": la configuración del esquema es la seleccionada en los Ajustes del plugin
  • "None": la consulta persistida no tendrá restricciones
  • "Inherit from parent": usar la misma configuración del esquema que la consulta persistida padre.
    Esta opción está disponible cuando el módulo API Hierarchy está habilitado, y la consulta persistida tiene una consulta padre (seleccionada en los ajustes del documento)
OpcionesPersonaliza el comportamiento de la consulta persistida:
  • Enabled?: si la consulta persistida está habilitada.
    Es útil deshabilitar una consulta persistida si es una consulta padre en una jerarquía de API
  • Do URL params override variables?: permitir que los parámetros de URL sobrescriban los valores de las variables definidas en el cliente GraphiQL
  • Inherit query from ancestor(s)?: usar la misma consulta que la consulta persistida padre.
    Esta opción está disponible cuando el módulo API Hierarchy está habilitado, y la consulta persistida tiene una consulta padre (seleccionada en los ajustes del documento)

Estas son las entradas en los ajustes del documento:

EntradaDescripción
PermalinkEl endpoint bajo el cual estará disponible la consulta persistida
CategoríasPermite categorizar la consulta persistida.
Ej.: mobile, app, etc
ExtractoProporciona una descripción para la consulta persistida.
Esta entrada está disponible cuando el módulo Excerpt as Description está habilitado
Atributos de páginaSelecciona una consulta persistida padre.
Esta entrada está disponible cuando el módulo API Hierarchy está habilitado