概要
HeadlessCMSを自前で用意するため、オープンソースのstrapiを利用してみました。
構築からコンテンツ登録までの手順をご紹介します。
環境構築
strapiインストール&プロジェクト作成
本家ドキュメントに従い、構築します。
yarn create strapi-app my-strapi-cms --quickstart
Adminのユーザー情報を入力して[Ready to strapi]
でスタートします。
--quickstart
を指定した場合、DBはSQLite
が選択され、
一緒にインストールされます。その他のDBは以下が選択可能です。
- SQLite
- MongoDB
- MySQL and MariaDB
- PostgreSQL
DBを指定する場合の手順はこちら
予めDBのインストールが必要です。
ユーザー登録
- CONTENT TYPESの下にあるユーザーをクリック
- Userを追加をクリック
-
Username
,Email
,Password
を入力 -
Confirmedは
ON
を選択 -
Roleは
Authenticated
を選択 - 保存をクリック
コンテンツタイプの作成
- CONTENT TYPESの下にあるコンテンツタイプ作成をクリック
-
Create new content-type
をクリック -
Display Nameに
restaurant
と入力し続けるをクリック



-
Text
を選択 - 基本設定タブでNameに
name
を入力 - 高度な設定タブでRequired fieldをチェック
- 高度な設定タブでUnique fieldをチェック
-
+Add another field
をクリック
上記を切り返し、複数フィールドを設定します。
最後にFinishをクリックします。
リレーションの作成
コンテンツタイプにリレーションを組むことができます。
以下の内容の「Category」というコンテンツを登録します。
-
Display Name:
category
-
Text:Name:
name
- Required fieldをチェック
- Unique fieldをチェック
-
Relation
を選択 -
Restaurant
を選択 - 多対多を選択
コンポーネントの作成
-
Create new content-type
をクリック -
Nameに
hours_of_operation
-
categoryに
hours
- 続けるをクリック

-
Text:Name:
day_interval
- Required fieldをチェック
上記の手順で複数項目を設定し、保存します。
Hours_of_operationをRestaurantに割り当てるため、
Restaurantの+ Add another field
で以下を追加します。
-
Use an existing component
を選択 -
Nameに
restaurant_hours
を入力 -
Select a componentは
hours_of_operation
を選択 -
Repeatable component
を選択 - Finishをクリック

- 保存をクリック
※Configure the view
からコンテンツ登録時の画面レイアウトの編集ができます。
コンテンツ登録の準備が整いました!
コンテンツ登録
CONTENT TYPESの下にあるRestaurantからコンテンツを登録できます。
コンテンツ公開
デフォルトでは限定公開のため、公開設定が必要です。
- ロールと権限を選択
-
Public
を選択 - 「Restaurant」、「category」の
find
,findone
をチェックします。

APIでアクセス
http://localhost:1337/restaurants
にアクセスするとJSONが取得できます。
以上でHeadlessCMSの準備完了です!
まとめ
簡単に構築できるうえ、リレーション、コンポーネントも組み合わせることで
単純なデータ構造だけではなく、様々なデータ構造に対応できるため、汎用性が高いと感じました。
フロントエンドと組み合わせてCMSライフにどんどん活用したいと思います。
参考
strapi
WordPress以外の選択肢!HeadlessCMS「Strapi」を試す
超簡単にAPIが作れる?Headless CMS “strapi” を触ってみる
【strapi】HeadlessCMSのstrapiを触ってみた