Замена WP REST API
Если ваше приложение использует WP REST API, его можно заменить на Gato GraphQL.
С помощью расширения Persisted queries вы можете публиковать REST-подобные эндпоинты, составленные с использованием GraphQL.
Для каждого из REST-эндпоинтов вашего приложения вы можете создать соответствующий эндпоинт persisted query, который извлекает те же данные, и использовать его вместо прежнего.
Например, следующий GraphQL query может заменить 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
}
}Благодаря иерархии API, persisted query публикуется по пути /graphql-query/wp/v2/posts/, что упрощает сопоставление эндпоинтов.
Чтобы воспроизвести REST-эндпоинт /wp-json/wp/v2/posts/{id}/, который извлекает данные записи с заданным ID, можно передать ID записи через параметр URL postId.
Например, следующий persisted query можно вызвать по эндпоинту /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
}
}