Craft CMS の GraphQL 対応について #craftcms

このエントリは Craft CMS Advent Calendar 2019 8日目のエントリーです。
昨日は「Craft CMS で入力タイプやセクションを複製したいときに使える Cloner プラグイン」でした。

Craft CMS では 3.3 (Pro版に限定)から GraphQL が CMS 側で対応された。

Craft 3.3 Released with GraphQL and Headless Mode | Craft CMS
https://craftcms.com/blog/craf...

GraphQL はざっくりいうと REST API みたいなものと考えるといいとは思う。
僕のスキルレベルではそのような認識。
GraphQL と REST API を比較してくれている記事もいくつかある。

Craft CMS では REST API については Element API プラグインがファーストパーティのプラグインとして提供されている。

Element API
https://plugins.craftcms.com/e...

Element API で大体のことはできるので使い方としては Element API を使うのでも問題ないと思う。

Headless と Craft Cloud を見据えての GraphQL?

Headless CMS として使われることも想定されていて、Headless Mode も提供されている。

General Config Settings | Craft 3 Documentation
https://docs.craftcms.com/v3/c...

これが将来的には Craft Cloud の提供に繋がっていくと思われる。

Craft Cloud
https://craft.cloud/

GraphQL は1つのリクエストで色々なデータを取得したり、データの登録や更新、削除などができる。

データの登録・更新・削除、いわゆる CRUD の CUDあたりは Mutation と呼ばれるが Craft CMS では 4.0 でサポート予定となっている。

FR: GraphQL support on Mutation · Issue #4835 · craftcms/cms
https://github.com/craftcms/cm...

なので現時点ではデータを取得してサイトで表示するという使い方ができる。

3.3 の時点では CraftQLプラグインを使う選択肢もあり

一方、 Craft CMS 自体が GraphQLをサポートする前からある CraftQL プラグインはこの辺の Mutation も対応している。

CraftQL
https://plugins.craftcms.com/c...

2020年にリリースされる予定の Craft 4.0 以前で Mutation を使いたい場合はこのプラグインを使うという選択肢になる。

簡単ではあるが引き続き Craft CMS で GraphQLを使って見た内容などを書いていこうと思う。