はじめにWP REST APIをGato GraphQLに置き換える
WP REST APIをGato GraphQLに置き換える
アプリケーションがWP REST APIを使用している場合、代わりにGato GraphQLを使用することができます。
Persisted Queries拡張機能を使用すると、GraphQLを使って構成されたREST風のエンドポイントを公開できます。
アプリケーション内の各RESTエンドポイントに対して、同じデータを取得する対応するパーシステッドクエリエンドポイントを作成し、そのエンドポイントを代わりに使用できます。
例えば、次のGraphQLクエリは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の階層のおかげで、パーシステッドクエリは/graphql-query/wp/v2/posts/というパスの下に公開され、エンドポイントのマッピングが容易になります。
RESTエンドポイント/wp-json/wp/v2/posts/{id}/(指定されたIDの投稿データを取得するもの)を再現するには、URLパラメータpostIdの下に投稿IDを指定します。
例えば、次のパーシステッドクエリはエンドポイント/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