microCMSのチェックボックス1つで本番環境にコンテンツを公開する方法
目次
はじめに
CMSでコンテンツを管理していると、「下書きは開発環境で確認し、準備ができたら本番環境に公開したい」というニーズが出てきます。本記事では、microCMSのブール値フィールドを活用して、ボタン1つで本番公開を制御する方法を紹介します。
仕組みの概要
microCMSのコンテンツにisProductionReleaseというブール値フィールドを追加し、このフラグがONのコンテンツのみ本番環境で表示されるようにします。
graph TB
subgraph microCMS["microCMS"]
content["コンテンツ<br/>- タイトル: 新機能のお知らせ<br/>- 本文: ...<br/>- [✓] isProductionRelease"]
end
microCMS --> dev["開発環境<br/>全記事表示"]
microCMS --> prod["本番環境<br/>ONのみ表示"]
microCMS側の設定
1. フィールドの追加
microCMSの管理画面で、対象のAPIスキーマに以下のフィールドを追加します。
| フィールド名 | フィールドID | 種類 |
|---|---|---|
| 本番公開 | isProductionRelease | 真偽値 |
2. 運用フロー
- コンテンツを作成・編集(
isProductionReleaseはOFF) - 開発環境で表示を確認
- 問題なければ
isProductionReleaseをONに変更 - 本番環境に自動的に表示される
バックエンド実装
microCMS APIへのリクエスト時に、環境に応じてフィルター条件を追加します。
// 環境判定
function isProduction(): boolean {
return process.env.ENV === "production";
}
// コンテンツ取得処理
async function fetchNews(): Promise<News[]> {
let filters = "";
// 本番環境の場合のみフィルターを適用
if (isProduction()) {
filters = "isProductionRelease[equals]true";
}
const response = await microCMSClient.getList({
endpoint: "news",
queries: { filters },
});
return response.contents;
}
メリット
1. シンプルな運用
- microCMSの管理画面でチェックを入れるだけ
- デプロイ作業が不要
- 非エンジニアでも操作可能
2. 安全な確認フロー
- 開発環境で実際の表示を確認してから公開
- 本番公開前のレビューが容易
3. 即座のロールバック
- 問題があればチェックを外すだけで非公開に
- 緊急時の対応が迅速
まとめ
microCMSのブール値フィールドを活用することで、コードの変更やデプロイなしに本番公開を制御できます。シンプルながら実用的な仕組みなので、ぜひ取り入れてみてください。
