Het schema configureren
Het schema configurerenQueries over 'self'-velden

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

Self-velden aan het schema toevoegen, ingesteld 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:

Self-velden instellen voor de schemaconfiguratie, in de Instellingen
Self-velden instellen voor de schemaconfiguratie, in de Instellingen

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.