Custom Endpoints
Custom EndpointsEndpoints Personalizados

Endpoints Personalizados

Included in the “Power Extensions” bundle

Crea esquemas personalizados, con reglas de acceso personalizadas para diferentes usuarios, cada uno disponible bajo su propio endpoint.

Descripción

Un servidor GraphQL normalmente expone un único endpoint para recuperar y enviar datos.

Además de soportar el endpoint único, Gato GraphQL también permite crear endpoints personalizados, proporcionando diferentes configuraciones de esquema para cubrir las necesidades de diferentes destinatarios, tales como:

  • Un cliente o usuario específico
  • Un grupo de usuarios con más acceso a funcionalidades (como usuarios PRO)
  • Una de varias aplicaciones, como app móvil o sitio web
  • APIs de terceros
  • Cualquier otro

El endpoint personalizado es un Custom Post Type, y su permalink es el endpoint. Un endpoint con el título "My endpoint" y slug my-endpoint será accesible en /graphql/my-endpoint/.

Editor de endpoint personalizado

Clientes

Cada endpoint personalizado tiene su propio conjunto de clientes con los que interactuar:

✅ Un cliente GraphiQL, disponible en el endpoint + ?view=graphiql (por ejemplo: /graphql/my-endpoint/?view=graphiql).

Debe estar habilitado el módulo GraphiQL para Endpoints Personalizados.

Cliente GraphiQL del endpoint personalizado

✅ Un cliente Interactive schema, disponible en el endpoint + ?view=schema (por ejemplo: /graphql/my-endpoint/?view=schema).

Debe estar habilitado el módulo Interactive Schema para Endpoints Personalizados.

Interactive schema del endpoint personalizado

Creación de un Endpoint Personalizado

Al hacer clic en el enlace Endpoints Personalizados del menú, se muestra la lista de todos los endpoints personalizados creados:

Endpoints Personalizados en el admin
Endpoints Personalizados en el admin

Un endpoint personalizado es un custom post type (CPT). Para crear un nuevo endpoint personalizado, haz clic en el botón "Añadir Nuevo endpoint GraphQL", que abrirá el editor de WordPress:

Creando un nuevo Endpoint Personalizado

Cuando el endpoint personalizado esté listo, publícalo, y su permalink se convertirá en la URL del endpoint. Los enlaces al endpoint (y al source y los clientes) se muestran en el panel lateral "Resumen del Endpoint Personalizado":

Resumen del Endpoint Personalizado

Añadiendo ?view=source al permalink, se mostrará la configuración del endpoint (siempre que el usuario haya iniciado sesión y el rol del usuario tenga acceso):

Source del endpoint personalizado

Por defecto, el endpoint personalizado tiene la ruta /graphql/, y este valor es configurable mediante los Ajustes:

Ajustes de endpoint personalizado
Ajustes de endpoint personalizado

Configuración del esquema

La definición de 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:

Seleccionando la configuración del esquema

Organizando Endpoints Personalizados por Categoría

En el panel lateral "Categorías de endpoint" podemos añadir categorías para ayudar a gestionar el Endpoint Personalizado:

Categorías de endpoint al editar un Endpoint Personalizado

Por ejemplo, podemos crear categorías para gestionar endpoints por cliente, aplicación, o cualquier otra información necesaria:

Lista de categorías de endpoint

En la lista de Endpoints Personalizados podemos visualizar sus categorías y, haciendo clic en cualquier enlace de categoría, o usando el filtro de la parte superior, solo se mostrarán todas las entradas de esa categoría:

Lista de Endpoints Personalizados con sus categorías

Filtrando Endpoints Personalizados por categoría

Endpoints privados

Estableciendo el estado del Endpoint Personalizado como private, el endpoint solo podrá ser accedido por el usuario administrador. Esto evita que nuestros datos sean compartidos involuntariamente con usuarios que no deben tener acceso a ellos.

Por ejemplo, podemos crear Endpoints Personalizados privados que ayuden a gestionar la aplicación, como obtener datos para crear informes con nuestras métricas.

Endpoint Personalizado privado

Endpoints protegidos con contraseña

Si creamos un Endpoint Personalizado para un cliente específico, ahora podemos asignarle una contraseña, para proporcionar un nivel adicional de seguridad y que solo ese cliente acceda al endpoint.

Endpoint Personalizado protegido con contraseña

Cuando se accede por primera vez a un endpoint protegido con 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:

Endpoint Personalizado protegido con contraseña: Primer acceso

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

Endpoint Personalizado protegido con contraseña: Tras la autorización