CMS > headlessCMS
2020年05月16日(土) 公開
headless CMSの選定方法
headless CMSとは?†
WordPressなどのCMSと違って、データの表示機能を持っていないCMS。
表示用のデータを吐き出すAPIが用意されており、フロンド側は自由に選択できるので、Webサイト構築で柔軟性が高くなる。
MVCアーキテクチャーのWebフレームワークでいうと、Viewの部分が分離されているかんじ?
リンク†
ライブラリー / フレームワーク†
PHP製のheadlessCMS†
Tips†
ベンダーロックインの回避†
headless CMSのライセンスには、オープンソースとクローズドソースの2種類があった。
「Contentful」など有料のクローズドソースで人気が高いCMSもあるけど、ベンダーロックインを回避するために、クローズドソースはなるべく選ばない方が良い。
=他人の依頼なら、本人の希望で好きにすればいい。
基本的には、オープンソースのheadless CMSを選定した方が無難だと思う。
アイデア†
headless CMSを自作するなら、どうするか?
- バックエンド
言語、FWは何でもいい。
- 記事を制作する機能
- 静的部分(SSGで記事ページ)は、キャッシュを吐き出す機能(記事の更新のたびに再作成)
- 動的部分(サイドメニューなど?)は、キャッシュの場合は定期的に再作成?
- 動的部分で随時更新される部分は、動的に生成してAPIで提供
- API
GraphQLにする。
- RESTfulはもう古い?一応、GraphQLでもRESTfulでも両方対応できるようにしておけば無難かも?
- 記事のデータ形式
- 無難なところではMarkdown形式。
- 数式や図などは、LaTeX形式にも対応できた方が便利。
- Markdownよりも柔軟性の高い/新しい形式なら、AsciiDoc形式でも良いかもしれない。
https://ja.wikipedia.org/wiki/AsciiDoc
- フロントエンド
単なるデータ表示器なので、これまた何でもいい。
- Reactにしておけば、Reactのエコシステム(ReactNativeなど)も利用できるので、後々便利かも?
Reactにして不都合があれば、取り替えは自由。
- SPAにしないで、記事ごとにURLを提供するなら、Next.jsも使うべきか?
