Remplacer la WP REST API
Si votre application utilise la WP REST API, il est possible d'utiliser Gato GraphQL à la place.
Avec l'extension Persisted queries, vous pouvez publier des endpoints de type REST, composés avec GraphQL.
Pour chacun des endpoints REST de votre application, vous pouvez créer un endpoint de requête persistée correspondant qui récupère les mêmes données, et utiliser cet endpoint à la place.
Par exemple, la requête GraphQL suivante peut remplacer l'endpoint REST /wp-json/wp/v2/posts/ :
{
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
}
}Grâce à la hiérarchie d'API, la requête persistée peut être publiée sous le chemin /graphql-query/wp/v2/posts/, ce qui facilite le mappage des endpoints.
Pour répliquer l'endpoint REST /wp-json/wp/v2/posts/{id}/, qui récupère les données de l'article avec l'ID donné, nous pouvons fournir l'ID de l'article via le paramètre d'URL postId.
Par exemple, la requête persistée suivante peut être invoquée sous l'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
}
}