Queries over 'self'-velden
Soms moeten we de vorm van de respons aanpassen, om dezelfde respons van een andere GraphQL-server of van de REST API na te bootsen.
Dit kunnen we doen via het self-veld, dat aan alle typen in het GraphQL-schema is toegevoegd en het object teruggeeft waarop het wordt toegepast:
type QueryRoot {
self: QueryRoot!
}
type Post {
self: Post!
}
type User {
self: User!
}Hoe het werkt
Het self-veld maakt het mogelijk om extra niveaus aan de queries toe te voegen zonder het bevraagde object te verlaten. Als je deze query uitvoert:
{
__typename
self {
__typename
}
post(by: {id: 1}) {
self {
id
__typename
}
}
user(by: {id: 1}) {
self {
id
__typename
}
}
}...geeft dit de volgende respons:
{
"data": {
"__typename": "QueryRoot",
"self": {
"__typename": "QueryRoot"
},
"post": {
"self": {
"id": 1,
"__typename": "Post"
}
},
"user": {
"self": {
"id": 1,
"__typename": "User"
}
}
}
}Hoe te gebruiken
Gebruik self om kunstmatig de extra niveaus toe te voegen die nodig zijn voor de respons, en gebruik veldaliassen om die niveaus passend te benoemen.
Deze query bootst bijvoorbeeld de vorm van een andere GraphQL-server na:
{
categories: self {
edges: postCategories {
node: self {
name
slug
}
}
}
}Deze query bootst de vorm van de WP REST API na:
{
post(by: {id: 1}) {
content: self {
rendered: content
}
}
}self-velden toevoegen aan de endpoints
Het toevoegen van self-velden aan het schema kan als volgt worden geconfigureerd, op volgorde van prioriteit:
Specifieke modus voor het custom endpoint of de persisted query, gedefinieerd in de schemaconfiguratie

Standaardmodus, gedefinieerd in de Instellingen
Als de schemaconfiguratie de waarde "Default" heeft, wordt de modus gebruikt die in de Instellingen is gedefinieerd:

Wanneer te gebruiken
Het self-veld kan worden gebruikt om de vorm van de GraphQL-respons aan te passen aan een bepaalde vereiste vorm, zoals die van een andere GraphQL-server of van de REST API.