Een aangepast endpoint aanmaken
Naast het enkele endpoint ondersteunt Gato GraphQL ook aangepaste endpoints, om gegevens op te halen en te plaatsen voor een aangepast schema (dat slechts een subset van de beschikbare typen bevat) en gebruikersvalidatieregels, om tegemoet te komen aan de behoeften van verschillende gebruikers en applicaties.
Je kunt zo veel aangepaste endpoints aanmaken als nodig is.
Zo kun je bijvoorbeeld een aangepast endpoint aanmaken voor:
- Een specifieke klant of gebruiker, onder
/graphql/my-client/ - Een groep gebruikers met meer toegang tot functies (zoals PRO-gebruikers), onder
/graphql/pro-users/ - Het leveren van gegevens aan onze mobiele app, onder
/graphql/mobile-app/ - Het bieden van toegang tot een externe API, onder
/graphql/external-api/ - Andere gevallen

Het aangepaste endpoint uitvoeren in een applicatie
Volg de instructies in de gids Verbinding maken met de GraphQL-server vanuit een client.
Toegang tot alle aangepaste endpoints
Door op "Custom Endpoints" in het menu van de plugin te klikken, wordt de lijst met alle aangemaakte aangepaste endpoints weergegeven:

Een nieuw aangepast endpoint aanmaken
Klik op de knop "Add New GraphQL endpoint" om de WordPress-editor te openen:

Geef het een titel, zorg ervoor dat de permalink de gewenste is, selecteer de schemaconfiguratie en pas de opties aan. Klik als je klaar bent op de knop Publish, waarna het aangepaste endpoint wordt aangemaakt met de geconfigureerde permalink als endpoint-URL.
Links naar het endpoint (en naar de bron en clients) worden weergegeven in het zijpaneel "Custom Endpoint Overview":

Schemaconfiguratie
Welke elementen het schema bevat en welke toegang gebruikers ertoe hebben, wordt bepaald in de schemaconfiguratie.
Daarom moeten we een schemaconfiguratie aanmaken, en deze vervolgens selecteren in het dropdown-menu (of geen gebruiken, of de standaardinstelling):

Privé-endpoints
Door de status van het aangepaste endpoint in te stellen op private, is het endpoint alleen toegankelijk voor de beheerder. Dit voorkomt dat onze gegevens onbedoeld worden gedeeld met gebruikers die er geen toegang toe zouden mogen hebben.
Zo kunnen we bijvoorbeeld privé-aangepaste endpoints aanmaken die helpen bij het beheer van de applicatie, zoals het ophalen van gegevens om rapporten met onze statistieken op te stellen.

Met wachtwoord beveiligde endpoints
Als je een aangepast endpoint aanmaakt voor een specifieke klant, kun je er een wachtwoord aan toewijzen om een extra beveiligingsniveau toe te voegen, zodat alleen die klant toegang krijgt tot het endpoint.

Bij de eerste toegang tot een met wachtwoord beveiligd endpoint (of je nu het endpoint zelf opent, of de GraphiQL- of Interactive Schema-clients), verschijnt er een scherm dat om het wachtwoord vraagt:

Nadat het wachtwoord is opgegeven en gevalideerd, krijgt de gebruiker pas toegang tot het beoogde endpoint of de beoogde client:

Een endpointhiërarchie aanmaken
Lees de instructies over het aanmaken van een API-hiërarchie.
Het aangepaste endpoint uitschakelen
Stel in de opties "Enabled" in op false om het aangepaste endpoint uit te schakelen.
Deze functie kan nuttig zijn wanneer het aangepaste endpoint deel uitmaakt van een API-hiërarchie, om een gemeenschappelijk gedrag te bieden aan de onderliggende aangepaste endpoints, zonder dat het zelf uitgevoerd hoeft te worden.
Het aangepaste endpoint beschrijven
Gebruik het veld "Excerpt" in het paneel Documentinstellingen om een beschrijving toe te voegen aan het aangepaste endpoint.
Meer informatie vind je in de gids Een beschrijving toevoegen aan de API.
Endpointclients
Elk aangepast endpoint heeft zijn eigen set clients om mee te werken.
GraphiQL-client
Voeg ?view=graphiql toe aan het endpoint om toegang te krijgen tot de GraphiQL-client:

De GraphiQL-client kan ook worden geopend tijdens het bewerken van het aangepaste endpoint, in het zijpaneel "Custom Endpoint Overview":

Evenzo kan de client worden geopend vanuit de lijstpagina met aangepaste endpoints, via de link "GraphiQL" wanneer je over het item zweeft:

Om de GraphiQL-client uit te schakelen, stel je de optie "Expose GraphiQL client?" in op false in de editor van het aangepaste endpoint.
Interactive Schema (Voyager)-client
Voeg ?view=schema toe aan het endpoint om toegang te krijgen tot de Interactive Schema-client, waarmee je het schema van het endpoint kunt visualiseren en ermee kunt werken:

De Interactive Schema-client kan ook worden geopend tijdens het bewerken van het aangepaste endpoint, in het zijpaneel "Custom Endpoint Overview":

Evenzo kan de client worden geopend vanuit de lijstpagina met aangepaste endpoints, via de link "Interactive Schema" wanneer je over het item zweeft:

Om de Interactive Schema-client uit te schakelen, stel je de optie "Expose the Interactive Schema client?" in op false in de editor van het aangepaste endpoint.
Het endpoint testen vóór publicatie online
Een aangepast endpoint met de status draft of pending is alleen beschikbaar voor gebruikers die het schema bewerken. Dit geeft hen de mogelijkheid om:
- GraphQL-queries uit te voeren tegen het endpoint
- Toegang te krijgen tot de GraphiQL- en Voyager-clients van het endpoint
Vervolgens kunnen we een aangepast endpoint aanmaken, een schemaconfiguratie toewijzen, het publiceren als draft of pending, en het testen (bijv. controleren of de toegangscontroleregels correct zijn).
Pas nadat het is goedgekeurd, stellen we de status in op publish, waardoor het aangepaste endpoint voor iedereen beschikbaar wordt.
De bron bekijken
Door ?view=source aan het endpoint toe te voegen, wordt de configuratie van het endpoint weergegeven (zolang de gebruiker is ingelogd en de gebruikersrol er toegang toe heeft):

Configuratie in de WordPress-editor
Dit zijn de velden in de hoofdtekst van de editor:
| Veld | Beschrijving |
|---|---|
| Titel | Titel van het aangepaste endpoint |
| Schemaconfiguratie | Selecteer in het dropdown-menu de schemaconfiguratie die van toepassing is op het aangepaste endpoint, of een van de volgende opties:
|
| Opties | Past het gedrag van het aangepaste endpoint aan:
|
Dit zijn de velden in de documentinstellingen:
| Veld | Beschrijving |
|---|---|
| Permalink | Het adres waaronder het aangepaste endpoint beschikbaar zal zijn |
| Categorieën | Kan het aangepaste endpoint categoriseren. Bijv.: mobile, app, enz. |
| Excerpt | Geeft een beschrijving voor het aangepaste endpoint. Dit veld is beschikbaar wanneer de module "Excerpt as Description" is ingeschakeld |
| Paginakenmerken | Selecteert een bovenliggend aangepast endpoint. Dit veld is beschikbaar wanneer de module "API Hierarchy" is ingeschakeld |