Creando un endpoint personalizado
Además del endpoint único, Gato GraphQL también soporta endpoints personalizados, para recuperar y publicar datos para un esquema personalizado (que contiene solo un subconjunto de los tipos disponibles) y reglas de validación de usuario, con el fin de atender las necesidades de distintos usuarios y aplicaciones.
Podemos crear tantos endpoints personalizados como necesitemos.
Por ejemplo, podemos crear un endpoint personalizado para:
- Algún cliente o usuario específico, en
/graphql/my-client/ - Un grupo de usuarios con más acceso a funcionalidades (como usuarios PRO), en
/graphql/pro-users/ - Proporcionar datos a nuestra app móvil, en
/graphql/mobile-app/ - Dar acceso a alguna API de terceros, en
/graphql/external-api/ - Otros

Ejecutando el endpoint personalizado en una aplicación
Por favor, sigue las instrucciones en la guía Conectando con el servidor GraphQL desde un cliente.
Accediendo a todos los endpoints personalizados
Al hacer clic en "Custom Endpoints" en el menú del plugin, se muestra la lista de todos los endpoints personalizados creados:

Creando un nuevo endpoint personalizado
Haz clic en el botón "Add New GraphQL endpoint" para abrir el editor de WordPress:

Asígnale un título, asegúrate de que el permalink es el deseado, selecciona la configuración del esquema y ajusta las opciones. Cuando esté listo, haz clic en el botón Publicar, y el endpoint personalizado se crea, usando el permalink configurado como URL del endpoint.
Los enlaces al endpoint (y al código fuente y clientes) se muestran en el panel lateral "Custom Endpoint Overview":

Configuración del esquema
Definir qué elementos contiene el esquema, y qué acceso tendrán los usuarios al mismo, 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):

Endpoints privados
Estableciendo el estado del Endpoint Personalizado como privado, 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 Endpoints Personalizados privados que ayuden a gestionar la aplicación, como recuperar datos para crear informes con nuestras métricas.

Endpoints protegidos por contraseña
Si creamos un Endpoint Personalizado 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.

Al acceder por primera vez a un endpoint protegido por contraseña (ya sea accediendo al endpoint directamente, o a sus clientes GraphiQL o Interactive Schema), nos encontramos con una pantalla que solicita la contraseña:

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

Creando una jerarquía de endpoints
Por favor, lee las instrucciones sobre crear una jerarquía de API.
Deshabilitando el endpoint personalizado
En las opciones, establece "Enabled" en false para deshabilitar el endpoint personalizado.
Esta característica puede ser útil cuando se hace que el endpoint personalizado forme parte de una jerarquía de API, para proporcionar un comportamiento común a sus endpoints personalizados hijos, pero sin necesidad de que él mismo se ejecute.
Describiendo el endpoint personalizado
Usa el campo "Extracto", del panel de ajustes del documento, para dar una descripción al endpoint personalizado.
Encuentra más información en la guía Añadiendo una descripción a la API.
Clientes del endpoint
Cada endpoint personalizado tiene su propio conjunto de clientes con los que interactuar.
Cliente GraphiQL
Añade ?view=graphiql al endpoint para acceder a su cliente GraphiQL:

El cliente GraphiQL también puede abrirse al editar el Endpoint Personalizado, bajo el panel lateral "Custom Endpoint Overview":

Del mismo modo, el cliente puede abrirse desde la página del listado de Endpoints Personalizados, en el enlace "GraphiQL" al pasar el cursor sobre la entrada:

Para deshabilitar el cliente GraphiQL, establece la opción "Expose GraphiQL client?" en false en el editor del Endpoint Personalizado.
Cliente Interactive Schema (Voyager)
Añade ?view=schema al endpoint para acceder a su cliente Interactive Schema, para visualizar e interactuar con el esquema del endpoint:

El cliente Interactive Schema también puede abrirse al editar el Endpoint Personalizado, bajo el panel lateral "Custom Endpoint Overview":

Del mismo modo, el cliente puede abrirse desde la página del listado de Endpoints Personalizados, en el enlace "Interactive Schema" al pasar el cursor sobre la entrada:

Para deshabilitar el cliente Interactive Schema, establece la opción "Expose the Interactive Schema client?" en false en el editor del Endpoint Personalizado.
Probando el endpoint antes de publicarlo en línea
Un endpoint personalizado con estado borrador o pendiente está disponible solo para los usuarios editores del esquema. Esto les da la capacidad de:
- Ejecutar consultas GraphQL contra él
- Acceder a los clientes GraphiQL y Voyager del endpoint
Entonces, podemos crear un endpoint personalizado, asignarle una Configuración del Esquema, publicarlo como borrador o pendiente, y probarlo (por ejemplo: comprobando que sus reglas de Control de Acceso son apropiadas).
Una vez aprobado, solo entonces establecemos su estado como publicado, haciendo el endpoint personalizado disponible para todo el mundo.
Viendo el código fuente
Añadiendo ?view=source al endpoint, mostrará la configuración del endpoint (siempre que el usuario esté autenticado y el rol de usuario tenga acceso a ella):

Configuración en el editor de WordPress
Estas son las entradas en el cuerpo del editor:
| Entrada | Descripción |
|---|---|
| Título | Título del endpoint personalizado |
| Configuración del esquema | Desde el desplegable, selecciona la configuración del esquema que se aplica al endpoint personalizado, o una de estas opciones:
|
| Opciones | Personaliza el comportamiento del endpoint personalizado:
|
Estas son las entradas en los ajustes del documento:
| Entrada | Descripción |
|---|---|
| Permalink | El endpoint bajo el cual estará disponible el endpoint personalizado |
| Categorías | Permite categorizar el endpoint personalizado. Ej.: mobile, app, etc |
| Extracto | Proporciona una descripción para el endpoint personalizado. Esta entrada está disponible cuando el módulo "Excerpt as Description" está habilitado |
| Atributos de página | Selecciona un endpoint personalizado padre. Esta entrada está disponible cuando el módulo "API Hierarchy" está habilitado |