De WP REST API vervangen
Als je applicatie de WP REST API gebruikt, is het mogelijk om in plaats daarvan Gato GraphQL te gebruiken.
Met de extensie Persisted Queries kun je REST-achtige endpoints publiceren, samengesteld met GraphQL.
Voor elk van de REST-endpoints in je applicatie kun je een bijbehorend persisted query-endpoint aanmaken dat dezelfde gegevens ophaalt, en dat endpoint in plaats daarvan gebruiken.
Zo kan de volgende GraphQL-query het REST-endpoint /wp-json/wp/v2/posts/ vervangen:
{
posts {
id
date: dateStr(format: "Y-m-d\\TH:i:s")
modified: modifiedDateStr(format: "Y-m-d\\TH:i:s")
slug
status
link: url
title: self {
rendered: title
}
content: self {
rendered: content
},
excerpt: self {
rendered: excerpt
}
author
featured_media: featuredImage
sticky: isSticky
categories
tags
}
}Dankzij de API-hiërarchie kan de persisted query worden gepubliceerd onder het pad /graphql-query/wp/v2/posts/, waardoor het eenvoudig is om endpoints te koppelen.
Om het REST-endpoint /wp-json/wp/v2/posts/{id}/ na te bootsen, dat gegevens ophaalt voor de post met een bepaald ID, kunnen we het post-ID meegeven via de URL-parameter postId.
Zo kan de volgende persisted query worden aangeroepen via het endpoint /graphql-query/wp/v2/posts/single/?postId={id}:
query GetPost($postId: ID!) {
post(by: { id: $postId }) {
id
date: dateStr(format: "Y-m-d\\TH:i:s")
modified: modifiedDateStr(format: "Y-m-d\\TH:i:s")
slug
status
link: url
title: self {
rendered: title
}
content: self {
rendered: content
},
excerpt: self {
rendered: excerpt
}
author
featured_media: featuredImage
sticky: isSticky
categories
tags
}
}