Een API maken
Een API makenEen persistente query aanmaken

Een persistente query aanmaken

Een persistente query is een combinatie van GraphQL- en REST-API's: het is een gewone GraphQL-query, gepubliceerd op de site en toegankelijk via een eigen URL, vergelijkbaar met een REST-endpoint.

We kunnen bijvoorbeeld gegevens voor een website beschikbaar stellen via de volgende persistente queries:

  • /graphql-query/homepage-posts
  • /graphql-query/user-widget
  • /graphql-query/post-content en deze uitvoeren door het ID van het bericht mee te geven: ?post=1
  • /graphql-query/post-content/es om de inhoud van het bericht naar het Spaans te vertalen
  • Andere

Editor voor persistente queries

De persistente query uitvoeren

Zodra de persistente query is gepubliceerd, kunnen we deze uitvoeren via de permalink.

De persistente query kan rechtstreeks in de browser worden uitgevoerd, omdat deze via GET toegankelijk is, en we ontvangen de gevraagde gegevens in JSON-formaat:

Een persistente query uitvoeren in de browser

De persistente query uitvoeren in een applicatie

Volg de instructies in de gids Verbinding maken met de GraphQL-server vanuit een client.

Alle persistente queries bekijken

Door op "Persisted Queries" in het menu van de plugin te klikken, wordt de lijst van alle aangemaakte persistente queries weergegeven:

Persistente queries in het beheerpaneel
Persistente queries in het beheerpaneel

Een nieuwe persistente query aanmaken

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

Een persistente query aanmaken

Geef het een titel en zorg ervoor dat de permalink de verwachte is, voer de GraphQL-query in, selecteer de schemaconfiguratie en pas de opties aan. Wanneer het klaar is, klik je op de knop Publiceren, en de permalink wordt het endpoint van de persistente query.

De link naar het endpoint (en naar de bron) wordt getoond in het zijpaneel "Persisted Query Endpoint Overview":

Persisted Query Endpoint Overview

Standaard heeft het endpoint van de persistente query het pad /graphql-query/, en deze waarde is configureerbaar via de Instellingen:

Instellingen voor persistente queries
Instellingen voor persistente queries

Query-editor

De GraphiQL-client in de editor is de plek om de GraphQL-persistente query in te voeren:

De GraphiQL-client van de persistente query

De editor wordt geleverd met de Explorer-add-on, waarmee je de query kunt samenstellen door op de velden in het linkerzijpaneel te klikken. Door op de knop "Run" te klikken wordt de query uitgevoerd om een ​​voorbeeld van de respons te bekijken:

Een persistente query samenstellen met de Explorer

Schemaconfiguratie

Wie toegang heeft tot de velden die in de persistente query worden opgevraagd, wordt bepaald in de schemaconfiguratie.

We moeten dus een schemaconfiguratie aanmaken, en deze vervolgens selecteren uit de vervolgkeuzelijst (of geen gebruiken, of de standaard):

De schemaconfiguratie selecteren

Privé persistente queries

Door de status van de persistente query in te stellen op privé, is het endpoint alleen toegankelijk voor de beheerder. Dit voorkomt dat onze gegevens onbedoeld worden gedeeld met gebruikers die geen toegang zouden mogen hebben.

We kunnen bijvoorbeeld privé persistente queries aanmaken die helpen bij het beheren van de applicatie, zoals het ophalen van gegevens om rapporten met onze statistieken te maken.

Privé persistente query

Met wachtwoord beveiligde persistente queries

Als we een persistente query aanmaken voor een specifieke klant, kunnen we er een wachtwoord aan toewijzen om een ​​extra beveiligingsniveau te bieden, zodat alleen die klant toegang heeft tot het endpoint.

Met wachtwoord beveiligde persistente query

Bij de eerste toegang tot een met wachtwoord beveiligde persistente query verschijnt er een scherm dat om het wachtwoord vraagt:

Met wachtwoord beveiligde persistente query: eerste toegang

Pas nadat het wachtwoord is ingevoerd en gevalideerd, krijgt de gebruiker toegang tot het beoogde endpoint.

De persistente query dynamisch maken via URL-parameters

De waarde voor elke variabele kan worden ingesteld via een URL-parameter (met de naam van de variabele) bij het uitvoeren van de persistente query. Als de optie "Do URL params override variables?" is ingeschakeld, heeft de URL-parameter prioriteit. Anders heeft de waarde die is gedefinieerd in het variabelenwoordenboek prioriteit (indien aanwezig).

In deze query wordt het aantal resultaten bijvoorbeeld bepaald door de variabele $limit, met een standaardwaarde van 3:

Variabelen gebruiken in persistente queries

Bij het uitvoeren van deze persistente query zal het meegeven van ?limit=5 de query uitvoeren en 5 resultaten teruggeven:

Waarden voor variabelen overschrijven in persistente queries

Een hiërarchie van persistente queries aanmaken

Lees de instructies over een API-hiërarchie aanmaken.

De persistente query uitschakelen

Stel in de opties "Enabled" in op false om de persistente query uit te schakelen.

Deze functie kan nuttig zijn wanneer de persistente query deel uitmaakt van een API-hiërarchie, om een gemeenschappelijk gedrag te bieden aan zijn onderliggende persistente queries, maar zonder dat deze zelf uitgevoerd hoeft te worden.

De persistente query beschrijven

Gebruik het veld "Excerpt" in het paneel Documentinstellingen om een beschrijving aan de persistente query te geven.

Meer informatie vind je in de gids Een beschrijving toevoegen aan de API.

De persistente query testen voor publicatie

Een persistente query met de status concept of in afwachting is alleen beschikbaar voor gebruikers die het schema bewerken.

We kunnen dus een persistente query aanmaken, een Schemaconfiguratie toewijzen, deze publiceren als concept of in afwachting, en deze testen (bijv.: controleren of de Toegangscontroleregelsg geschikt zijn).

Pas na goedkeuring stellen we de status in als gepubliceerd, waardoor de persistente query voor iedereen beschikbaar wordt.

De bron bekijken

Door ?view=source aan het endpoint toe te voegen, wordt de configuratie van de persistente query weergegeven (zolang de gebruiker is ingelogd en de gebruikersrol daar toegang toe heeft):

Bron van de persistente query


Configuratie in de WordPress-editor

Dit zijn de invoervelden in de hoofdtekst van de editor:

InvoerBeschrijving
TitelTitel van de persistente query
GraphiQL-clientEditor om de GraphQL-query te schrijven en uit te voeren:
  • Schrijf de query in het tekstvak
  • Declareer variabelen in de query en declareer hun waarden in het variabelenveld onderaan
  • Klik op de knop "Run" om de query uit te voeren
  • Ontvang de resultaten in het invoerveld aan de rechterkant
  • Klik op "Docs" om de schema-informatie te inspecteren
De Explorer (alleen weergegeven als de module GraphiQL Explorer is ingeschakeld) maakt het mogelijk om op velden te klikken, die automatisch aan de query worden toegevoegd
SchemaconfiguratieSelecteer uit de vervolgkeuzelijst de schemaconfiguratie die van toepassing is op de persistente query, of een van de volgende opties:
  • "Default": de schemaconfiguratie is degene die is geselecteerd in de Instellingen van de plugin
  • "None": de persistente query is onbeperkt
  • "Inherit from parent": gebruik dezelfde schemaconfiguratie als de bovenliggende persistente query.
    Deze optie is beschikbaar wanneer de module API Hierarchy is ingeschakeld en de persistente query een bovenliggende query heeft (geselecteerd in de Documentinstellingen)
OptiesPas het gedrag van de persistente query aan:
  • Enabled?: Of de persistente query is ingeschakeld.
    Het is handig om een persistente query uit te schakelen als deze een bovenliggende query is in een API-hiërarchie
  • Do URL params override variables?: Sta URL-parameters toe om de waarden van variabelen die zijn gedefinieerd in de GraphiQL-client te overschrijven
  • Inherit query from ancestor(s)?: Gebruik dezelfde query als de bovenliggende persistente query.
    Deze optie is beschikbaar wanneer de module API Hierarchy is ingeschakeld en de persistente query een bovenliggende query heeft (geselecteerd in de Documentinstellingen)

Dit zijn de invoervelden in de Documentinstellingen:

InvoerBeschrijving
PermalinkHet endpoint waaronder de persistente query beschikbaar is
CategorieënMaakt het mogelijk de persistente query te categoriseren.
Bijv.: mobile, app, enz.
ExcerptGeef een beschrijving voor de persistente query.
Dit invoerveld is beschikbaar wanneer de module Excerpt as Description is ingeschakeld
PaginakenmerkenSelecteer een bovenliggende persistente query.
Dit invoerveld is beschikbaar wanneer de module API Hierarchy is ingeschakeld