Zastępowanie WP REST API
Jeśli Twoja aplikacja używa WP REST API, możliwe jest użycie zamiast niej Gato GraphQL.
Za pomocą rozszerzenia Persisted Queries możesz publikować endpointy w stylu REST, tworzone przy użyciu GraphQL.
Dla każdego z endpointów REST w Twojej aplikacji możesz utworzyć odpowiadający mu endpoint utrwalonego zapytania, który pobiera te same dane, i używać go zamiast oryginalnego.
Na przykład następujące zapytanie GraphQL może zastąpić 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
}
}Dzięki hierarchii API utrwalone zapytanie może być opublikowane pod ścieżką /graphql-query/wp/v2/posts/, co ułatwia mapowanie endpointów.
Aby odwzorować endpoint REST /wp-json/wp/v2/posts/{id}/, który pobiera dane wpisu o podanym ID, możemy przekazać ID wpisu przez parametr URL postId.
Na przykład następujące utrwalone zapytanie może być wywołane pod endpointem /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
}
}