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. 運用フロー

  1. コンテンツを作成・編集(isProductionReleaseはOFF)
  2. 開発環境で表示を確認
  3. 問題なければisProductionReleaseをONに変更
  4. 本番環境に自動的に表示される

バックエンド実装

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のブール値フィールドを活用することで、コードの変更やデプロイなしに本番公開を制御できます。シンプルながら実用的な仕組みなので、ぜひ取り入れてみてください。

目次