Een API maken
Een API makenEen aangepast endpoint aanmaken

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

Editor voor aangepaste endpoints

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:

Aangepaste endpoints in het beheerpaneel
Aangepaste endpoints in het beheerpaneel

Een nieuw aangepast endpoint aanmaken

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

Een nieuw aangepast endpoint aanmaken

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":

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):

De schemaconfiguratie selecteren

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.

Privé aangepast endpoint

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.

Met wachtwoord beveiligd aangepast 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:

Met wachtwoord beveiligd aangepast endpoint: Eerste toegang

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

Met wachtwoord beveiligd aangepast endpoint: Na autorisatie

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:

GraphiQL-client van het aangepaste endpoint

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

Link naar de GraphiQL-client van het aangepaste endpoint in de editor

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

Link naar de GraphiQL-client van het aangepaste endpoint in de lijst
Link naar de GraphiQL-client van het aangepaste endpoint in de lijst

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:

Voyager-client van het aangepaste endpoint

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

Link naar de Interactive Schema-client van het aangepaste endpoint in de editor

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

Link naar de Interactive Schema-client van het aangepaste endpoint in de lijst
Link naar de Interactive Schema-client van het aangepaste endpoint in de lijst

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):

Bron van het aangepaste endpoint


Configuratie in de WordPress-editor

Dit zijn de velden in de hoofdtekst van de editor:

VeldBeschrijving
TitelTitel van het aangepaste endpoint
SchemaconfiguratieSelecteer in het dropdown-menu de schemaconfiguratie die van toepassing is op het aangepaste endpoint, of een van de volgende opties:
  • "Default": de schemaconfiguratie is degene die geselecteerd is in de instellingen van de plugin
  • "None": het aangepaste endpoint is onbeperkt
  • "Inherit from parent": gebruikt dezelfde schemaconfiguratie als het bovenliggende aangepaste endpoint.
    Deze optie is beschikbaar wanneer de module "API Hierarchy" is ingeschakeld en het aangepaste endpoint een bovenliggende query heeft (geselecteerd in de documentinstellingen)
OptiesPast het gedrag van het aangepaste endpoint aan:
  • Enabled?: Of het aangepaste endpoint is ingeschakeld.
    Het is nuttig om een aangepast endpoint uit te schakelen als het een bovenliggende query is in een API-hiërarchie
  • Expose GraphiQL client?: Schakelt het koppelen van een GraphiQL-client aan het endpoint in/uit, toegankelijk via ?view=graphiql
  • Expose the Interactive Schema client?: Schakelt het koppelen van een Interactive Schema-client aan het endpoint in/uit, toegankelijk via ?view=schema
  • Inherit query from ancestor(s)?: Gebruikt dezelfde query als het bovenliggende aangepaste endpoint.
    Deze optie is beschikbaar wanneer de module "API Hierarchy" is ingeschakeld en het aangepaste endpoint een bovenliggende query heeft (geselecteerd in de documentinstellingen)

Dit zijn de velden in de documentinstellingen:

VeldBeschrijving
PermalinkHet adres waaronder het aangepaste endpoint beschikbaar zal zijn
CategorieënKan het aangepaste endpoint categoriseren.
Bijv.: mobile, app, enz.
ExcerptGeeft een beschrijving voor het aangepaste endpoint.
Dit veld is beschikbaar wanneer de module "Excerpt as Description" is ingeschakeld
PaginakenmerkenSelecteert een bovenliggend aangepast endpoint.
Dit veld is beschikbaar wanneer de module "API Hierarchy" is ingeschakeld