Criando um custom endpoint
Além do single endpoint, o Gato GraphQL também suporta custom endpoints, para recuperar e publicar dados para um schema personalizado (contendo apenas um subconjunto dos tipos disponíveis) e regras de validação de usuário, de modo a atender as necessidades de diferentes usuários e aplicações.
Podemos criar quantos custom endpoints forem necessários.
Por exemplo, podemos criar um custom endpoint para:
- Um cliente ou usuário específico, em
/graphql/my-client/ - Um grupo de usuários com mais acesso a funcionalidades (como usuários PRO), em
/graphql/pro-users/ - Fornecer dados ao nosso aplicativo mobile, em
/graphql/mobile-app/ - Dar acesso a uma API de terceiros, em
/graphql/external-api/ - Outros casos

Executando o custom endpoint em uma aplicação
Siga as instruções do guia Conectando ao servidor GraphQL a partir de um cliente.
Acessando todos os custom endpoints
Clicando em "Custom Endpoints" no menu do plugin, é exibida a lista de todos os custom endpoints criados:

Criando um novo custom endpoint
Clique no botão "Add New GraphQL endpoint" para abrir o editor do WordPress:

Dê um título, certifique-se de que o permalink é o desejado, selecione a configuração do schema e ajuste as opções. Quando estiver pronto, clique no botão Publish, e o custom endpoint será criado, usando o permalink configurado como URL do endpoint.
Os links para o endpoint (e para a fonte e os clientes) são exibidos no painel lateral "Custom Endpoint Overview":

Configuração do schema
Definir quais elementos o schema contém, e qual acesso os usuários terão a ele, é configurado na configuração do schema.
Portanto, devemos criar uma configuração de schema, e então selecioná-la no menu suspenso (ou não usar nenhuma, ou usar a padrão):

Endpoints privados
Ao definir o status do Custom Endpoint como private, o endpoint só pode ser acessado pelo usuário administrador. Isso evita que nossos dados sejam compartilhados involuntariamente com usuários que não deveriam ter acesso a eles.
Por exemplo, podemos criar Custom Endpoints privados que ajudam a gerenciar a aplicação, como recuperar dados para criar relatórios com nossas métricas.

Endpoints protegidos por senha
Se criarmos um Custom Endpoint para um cliente específico, podemos atribuir uma senha a ele, para fornecer um nível adicional de segurança, garantindo que apenas aquele cliente acesse o endpoint.

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

Após a senha ser fornecida e validada, somente então o usuário terá acesso ao endpoint ou cliente desejado:

Criando uma hierarquia de endpoints
Leia as instruções em criando uma hierarquia de API.
Desativando o custom endpoint
Nas opções, defina "Enabled" como false para desativar o custom endpoint.
Esse recurso pode ser útil quando o custom endpoint faz parte de uma hierarquia de API, para fornecer um comportamento comum aos seus custom endpoints filhos, sem que ele próprio precise ser executado.
Descrevendo o custom endpoint
Use o campo "Excerpt", no painel de configurações do documento, para dar uma descrição ao custom endpoint.
Encontre mais informações no guia Adicionando uma descrição à API.
Clientes do endpoint
Cada custom endpoint tem seu próprio conjunto de clientes para interação.
Cliente GraphiQL
Adicione ?view=graphiql ao endpoint para acessar seu cliente GraphiQL:

O cliente GraphiQL também pode ser aberto ao editar o Custom Endpoint, no painel lateral "Custom Endpoint Overview":

Da mesma forma, o cliente pode ser aberto na página de lista de Custom Endpoints, no link "GraphiQL" ao passar o cursor sobre a entrada:

Para desativar o cliente GraphiQL, defina a opção "Expose GraphiQL client?" como false no editor do Custom Endpoint.
Cliente Interactive Schema (Voyager)
Adicione ?view=schema ao endpoint para acessar seu cliente Interactive Schema, para visualizar e interagir com o schema do endpoint:

O cliente Interactive Schema também pode ser aberto ao editar o Custom Endpoint, no painel lateral "Custom Endpoint Overview":

Da mesma forma, o cliente pode ser aberto na página de lista de Custom Endpoints, no link "Interactive Schema" ao passar o cursor sobre a entrada:

Para desativar o cliente Interactive Schema, defina a opção "Expose the Interactive Schema client?" como false no editor do Custom Endpoint.
Testando o endpoint antes de publicar online
Um custom endpoint com status draft ou pending está disponível apenas para os usuários editores do schema. Isso lhes dá a capacidade de:
- Executar queries GraphQL contra ele
- Acessar os clientes GraphiQL e Voyager do endpoint
Assim, podemos criar um custom endpoint, atribuir uma Configuração de Schema, publicá-lo como draft ou pending, e testá-lo (ex.: verificar se suas regras de Controle de Acesso são adequadas).
Após aprovado, somente então definimos seu status como publish, tornando o custom endpoint disponível para todos.
Visualizando a fonte
Ao anexar ?view=source ao endpoint, ele exibirá a configuração do endpoint (desde que o usuário esteja autenticado e seu perfil tenha acesso a ela):

Configuração no editor do WordPress
Estes são os campos no corpo do editor:
| Campo | Descrição |
|---|---|
| Título | Título do custom endpoint |
| Configuração do schema | No menu suspenso, selecione a configuração do schema que se aplica ao custom endpoint, ou uma destas opções:
|
| Opções | Personaliza o comportamento do custom endpoint:
|
Estes são os campos nas configurações do documento:
| Campo | Descrição |
|---|---|
| Permalink | O endpoint sob o qual o custom endpoint estará disponível |
| Categorias | Permite categorizar o custom endpoint. Ex.: mobile, app, etc. |
| Excerpt | Fornece uma descrição para o custom endpoint. Este campo está disponível quando o módulo "Excerpt as Description" está habilitado |
| Atributos de página | Seleciona um custom endpoint pai. Este campo está disponível quando o módulo "API Hierarchy" está habilitado |