Custom Endpoints
Custom EndpointsEndpoints Personalizados

Endpoints Personalizados

Included in the “Power Extensions” bundle

Crie schemas personalizados, com regras de acesso personalizadas para diferentes usuários, cada um disponível em seu próprio endpoint.

Descrição

Um servidor GraphQL normalmente expõe um único endpoint para recuperar e enviar dados.

Além de suportar o endpoint único, o Gato GraphQL também possibilita a criação de endpoints personalizados, fornecendo diferentes configurações de schema para atender às necessidades de diferentes destinos, como:

  • Um cliente ou usuário específico
  • Um grupo de usuários com maior acesso a recursos (como usuários PRO)
  • Uma das várias aplicações, como um app mobile ou site
  • APIs de terceiros
  • Qualquer outro caso

O endpoint personalizado é um Custom Post Type, e seu permalink é o endpoint. Um endpoint com título "My endpoint" e slug my-endpoint estará acessível em /graphql/my-endpoint/.

Editor do endpoint personalizado

Clientes

Cada endpoint personalizado possui seu próprio conjunto de clientes para interagir com ele:

✅ Um cliente GraphiQL, disponível no endpoint + ?view=graphiql (ex.: /graphql/my-endpoint/?view=graphiql).

O módulo GraphiQL for Custom Endpoints deve estar habilitado.

Cliente GraphiQL do endpoint personalizado

✅ Um cliente de schema interativo, disponível no endpoint + ?view=schema (ex.: /graphql/my-endpoint/?view=schema).

O módulo Interactive Schema for Custom Endpoints deve estar habilitado.

Schema interativo do endpoint personalizado

Criando um Endpoint Personalizado

Clicando no link Endpoints Personalizados no menu, é exibida a lista de todos os endpoints personalizados criados:

Endpoints Personalizados no painel administrativo
Endpoints Personalizados no painel administrativo

Um endpoint personalizado é um custom post type (CPT). Para criar um novo endpoint personalizado, clique no botão "Add New GraphQL endpoint", que abrirá o editor do WordPress:

Criando um novo Endpoint Personalizado

Quando o endpoint personalizado estiver pronto, publique-o, e seu permalink se torna a URL do endpoint. Os links para o endpoint (e para a fonte e os clientes) são exibidos no painel lateral "Custom Endpoint Overview":

Visão geral do Endpoint Personalizado

Ao acrescentar ?view=source ao permalink, será exibida a configuração do endpoint (desde que o usuário esteja logado e seu perfil tenha acesso a ele):

Fonte do endpoint personalizado

Por padrão, o endpoint personalizado possui o caminho /graphql/, e esse valor é configurável nas Configurações:

Configurações do endpoint personalizado
Configurações do endpoint personalizado

Configuração do schema

A definição dos elementos que o schema contém, e o acesso que os usuários terão a ele, é definida na configuração do schema.

Portanto, devemos criar uma configuração de schema e, em seguida, selecioná-la no menu suspenso:

Selecionando a configuração do schema

Organizando Endpoints Personalizados por Categoria

No painel lateral "Endpoint categories" podemos adicionar categorias para ajudar a gerenciar o Endpoint Personalizado:

Categorias de endpoint ao editar um Endpoint Personalizado

Por exemplo, podemos criar categorias para gerenciar endpoints por cliente, aplicação ou qualquer outra informação necessária:

Lista de categorias de endpoint

Na lista de Endpoints Personalizados, podemos visualizar suas categorias e, clicando em qualquer link de categoria, ou usando o filtro no topo, serão exibidas apenas as entradas daquela categoria:

Lista de Endpoints Personalizados com suas categorias

Filtrando Endpoints Personalizados por categoria

Endpoints privados

Ao definir o status do Endpoint Personalizado como private, o endpoint só poderá ser acessado pelo usuário administrador. Isso evita que nossos dados sejam compartilhados inadvertidamente com usuários que não deveriam ter acesso a eles.

Por exemplo, podemos criar Endpoints Personalizados privados que auxiliam no gerenciamento da aplicação, como a recuperação de dados para criar relatórios com nossas métricas.

Endpoint Personalizado privado

Endpoints protegidos por senha

Se criarmos um Endpoint Personalizado para um cliente específico, podemos atribuir uma senha a ele, fornecendo um nível adicional de segurança para que apenas aquele cliente acesse o endpoint.

Endpoint Personalizado protegido por senha

Ao acessar pela primeira vez um endpoint protegido por senha (seja acessando o endpoint diretamente, ou seus clientes GraphiQL ou Interactive Schema), nos deparamos com uma tela solicitando a senha:

Endpoint Personalizado protegido por senha: Primeiro acesso

Uma vez fornecida e validada a senha, somente então o usuário acessará o endpoint ou cliente pretendido:

Endpoint Personalizado protegido por senha: Após autorização