CMSを用いたAPIファースト開発手法

はじめまして!杉山と申します。どうぞよろしくお願い致します。 今回はCMSを用いたAPIファースト開発手法についてご紹介します。

そもそも、CMSとは?

CMSとは、Contents Management System(コンテンツ・マネジメント・システム)の頭文字をとった略称です。 CMSは大きく分類すると、動的ページ出力と静的ページ出力の2つが存在します。 (動的ページ出力、静的ページ出力については割愛と致します。) 杉山がよく開発を行うのは、動的CMSのHeartCoreというCMS開発を行います。 今回は主に動的CMS(HeartCore)でのお話が主になります。

現状CMSが抱える問題点

1. サーバーダウンが起こりやすい

静的ページ出力に比べて動的ページ出力の場合、ページ生成からページ返却という2ステップあるため2重にコストがかかる。 故に、動的ページ出力CMSはサーバーダウンが起こりやすいと言えます。 しかし、通常Apacheと呼ばれるWebページを返却するアプリケーションは返却する物が必要最低限の場合、負荷が高まらない。 ただ、動的ページ出力は各々専用のページを返却出来るため、静的ページ出力CMSとは異なる使い方が出来ます。

2. サーバーにかかるコスト

近年はAWS等のクラウドサーバによる従量課金制が主流になりつつある。 更にエンドユーザは4G回線や次期5G回線になり、今まで以上に高品質なサービス提供が求められる時代と言える。

3. CMSならではの開発スピード低下

CMS開発のメリットと言われる、入力口を設けそれに応じた出力がありますが、もちろん、魔法のように入力と出力が勝手に出来上がる事は無いのが現状。 本来は、入力を先に開発し、出力を開発に取り掛かる。 だが、入力と出力を同時に開発出来たらどんなに素晴らしいことだろうか。

UIが無いCMS、Headless CMSの時代へ

Headless CMSとは、Head Less CMS = 頭が無いCMS ここで言う"頭"とはHTML(デザイン)の事を指します。

Headless CMSの必要性

ユーザーニーズの変化に伴う、マルチチャネル配信 今後、Webサイトだけの対応でよいのか? 答えは否!断じて否だ!

ユーザーニーズの変化は劇的に変化しつつある。 それに答えてWebサイトだけではなくマルチチャネルでの配信を行わなければならない。

Headless CMSの場合、情報だけを返却するとご説明したが、これは受け取り側のチャネルに影響しないデータ構造であれば、 Webサイトの表示以外にもスマートフォンネイティブアプリの情報を表示したり、スマートウォッチやカーナビゲーションへのプッシュ通知も可能とする。

今後HTMLでの表示という概念が崩れたとしても、はたまた近未来の通信デバイスが開発されたとしても・・・ Headless CMSはエンドポイントとしては不滅だと言えるだろう。

Headless CMSを用いたAPIファースト開発手法 - デカップルドで迅速な開発へ

APIファースト開発手法では、フロントエンド開発者とバックエンド開発者とが同時進行出来るのが最大の旨味と言えるだろう。 まず初めに、エンドポイントで使用するデータ構造設計を行う。 設計が終わった段階で、フロントエンド開発者はデータ構造(json)をVue.js/Reactで取得&描画までの開発を行う。 その間、バックエンド開発者は設計フェーズで取り決めしたデータ構造を返却する機能開発を行う。

APIファースト開発手法を活かしたプロジェクトとは

以下に当てはまるプロジェクトはAPIファースト開発手法がマッチすると言えるだろう。

  • デザインが決まっていないが、入出力の定義が決まっている。
  • 静的サイトで一部CMSによる動的化対応

APIファースト開発手法で気をつけるべき点

全てのエンドポイントで同一のデータ構造を提供するため、設計段階で適切に設計しないと、複雑性が増し保守性が無くなるので注意が必要だ。

まとめ

今後のマルチチャネル配信、開発の高速化が求められる時代になり、CMS開発はHeadless CMSを用いた、APIファース開発が主流になってくるのではないかと思います。