多大な労力を必要とするスクラッチからの開発を否定するつもりはありませんが、オープンソースの活用、巨人の肩に乗る開発、具体的にはヘッドレスなCMSとしてWordPressを活用することも可能です。
ただし、以下の記事では、カスタムフィールドとWPのUIも活用しています。
記事要約
- WordPressの特徴
- 世界で最も人気のあるCMSであり、コンテンツ管理に優れる。
- 通常はブログやページのフロントエンドを通してコンテンツを表示するが、APIを介してデータ提供も可能。
- Web APIの概要
- API(Application Programming Interface)はソフトウェア間の通信手段。
- Web APIはインターネットを介してアクセスされるAPI。
- WordPressはREST APIを標準搭載し、WPGraphQLプラグインでGraphQL APIも実装可能。
- 目的とデータモデリング
- WordPressを用いて、データ入力サイトを構築し、APIを通じてデータを提供。
- 例:会社組織図(従業員、チーム、オフィス)データをモデル化。
- フロントエンドの最小化
- API専用サイトの場合、フロントエンドを最小化し、不要なページや投稿を削除。
- 検索エンジンによるインデックスを無効化し、非ログインユーザーアクセス制限コードを追加可能。
- カスタム投稿タイプとタクソノミー
- WordPressの「カスタム投稿タイプ」と「カスタムタクソノミー」を使用してデータを構造化。
- 例:
- 投稿タイプ:「従業員 (Employee)」「オフィス (Office)」
- タクソノミー:「チーム (Team)」
- プラグイン(例:Custom Post Type UI)やカスタムコードで設定可能。
- カスタムフィールド
- 投稿タイプにカスタムフィールドを追加し、詳細なデータ入力が可能。
- Meta Boxプラグインで直感的な入力インターフェースを構築可能。
- アクセス管理
- Advanced Access Managerプラグインを使用して、データ編集権限を詳細に設定。
- ユーザーロールごとにアクセス制限を管理し、データの保護を強化。
- REST APIカスタマイズ
- カスタムRESTルートを作成し、データ取得や操作を柔軟に制御。
WP_REST_Controller
クラスを拡張して、GET、POST、DELETEリクエストの管理が可能。- アクセス制限は
current_user_can
で制御し、認証にはWordPressのアプリケーションパスワードを使用。
- GraphQL APIの利用
- WPGraphQLプラグインを導入し、GraphQLクエリでデータを取得。
- カスタム投稿タイプのGraphQL対応設定に
show_in_graphql
キーを使用。 - GraphQL IDEでクエリをテストし、データを効率的に取得可能。
- 活用例
- WordPressサイトをデータ入力およびAPIサーバーとして活用し、アプリや他のWebフロントエンドにデータ提供。
- WordPress.comのStudioを用いてローカル開発やデモサイトの共有も可能。
この手順に従うことで、WordPressをデータ入力サイトとしてAPI対応のデータ提供が実現できる。
ヘッドレスCMSとは、コンテンツ管理システム(CMS)の一種であり、コンテンツの管理と表示を分離するアプローチを取る。従来のCMSは、フロントエンドとバックエンドが一体化しており、デザインとコンテンツが密接に関連している。しかし、ヘッドレスCMSでは、バックエンドはコンテンツの管理を専門に行い、フロントエンドは独立して開発される。
この仕組みを利用することで、開発者は自由な技術スタックを選択し、様々なデバイスやプラットフォームにコンテンツを配信できる。APIを通じてデータを取得し、表示するため、フロントエンドのデザインやユーザーインターフェースに柔軟性が生まれる。
主な利点には、パフォーマンスの向上、スケーラビリティの向上、コンテンツの再利用性が挙げられる。特にマルチチャネル戦略を採用する企業にとって、ヘッドレスCMSは効果的なソリューションである。非開発者でもコンテンツの更新が容易になり、開発チームは機能の拡張や改善に集中できる。