入门用 Gato GraphQL 替换 WP REST API
用 Gato GraphQL 替换 WP REST API
如果您的应用程序正在使用 WP REST API,可以改用 Gato GraphQL。
借助 Persisted Queries 扩展,您可以发布使用 GraphQL 构建的类 REST 端点。
对于应用程序中的每个 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 的文章数据),可以通过 URL 参数 postId 传入文章 ID。
例如,以下 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
}
}Prev
Next