【9章】microCMS導入演習の振り返り+ブランチの作成方法など

【9章】microCMS導入演習の振り返り+ブランチの作成方法など

公開: 2026年01月10日

学習振り返り
要約
  • 新しいリモートリポジトリchapter-9をGitHubに作成し、ローカルリポジトリのリモート設定を更新する手順をメモした。
  • カテゴリの型の変更やuseEffectの使い方、APIキーのセキュリティ対策について学び、実装方法をまとめた。
  • 新しい知識の習得が楽しいと感じており、次のバックエンド開発に期待を寄せている。
音声で記事を再生

CMSについて

CMS(Content Management System)とは?

・ Webサイトのコンテンツ(記事や画像など)を管理・更新できる仕組みのこと
・ 専門的なプログラミング知識がなくても、管理画面から簡単に投稿や編集ができる

ヘッドレスCMSとは?

・表示部分(フロントエンド)を持たず、API経由でデータを提供するCMSのこと
・今回使用した microCMS はヘッドレスCMSの一種

ブランチの作成方法等

毎回操作が不安なので自分のメモ用として残しておきますm(__)m

前提:今の状態

  • ローカルには my-next フォルダがあり、main ブランチにいる

  • 8章で実施したfeature/chapter-8 ブランチも存在

  • これから GitHub に chapter-9 という新しいリモートリポジトリを作成し、
    ローカルと紐づけfeature/chapter_9のブランチで課題を進めたい

ステップ①:GitHubで新しいリポジトリを作成

1.GitHubにログイン
2.右上の「+」→「New repository」をクリック
3.以下を入力:

  • Repository namechapter-9

  • Description(任意):簡単な説明(空でもOK)

  • Visibility:Public(またはPrivate)

  • その他はデフォルトのままでOK

4.「Create repository」をクリック!
→GitHub上でchapter-9のリポジトリが作成

9章の振り返り|ShiftBブログ

ステップ②:ローカルのリポジトリの設定

1.VS Code のターミナルで、現在のリモート設定を確認:git remote -v

9章の振り返り|ShiftBブログ

→現在、ローカルのリポジトリは chapter-8 のGitHubリポジトリとつながっている状態

2.「chapter-9」という新しいリモートリポジトリに切り替えるため
  今のリモート設定を削除する:git remote remove origin

9章の振り返り|ShiftBブログ

→これで、chapter-8との接続が解除された状態

ステップ③:以降の手順は、前回のブログを参照

「GitHubの使い方 〜6章でつまずいた私の備忘録〜」に記載のステップ③以降を実施

前回の課題のブランチが残っている場合

9章の振り返りと、GitHubで新しいリモートリポジトリ(chapter-9)を作成して紐づける|ShiftBブログ
  • feature/chapter_9現在作業中のブランチ* がついてる)

  • mainブランチのほか、feature/chapter-8 のブランチも ローカルに存在している

feature/chapter-8 が不要な場合の削除手順:

1.差分を確認:git diff main..feature/chapter-8
→何も表示されなければ、差分なし=削除してOK

2.削除:git branch -d feature/chapter-8
Deleted branch feature/chapter-8 (was 8767a97).と表示されれば削除成功

9章の振り返りと、GitHubで新しいリモートリポジトリ(chapter-9)を作成して紐づける|ShiftBブログ

9章での学び

①categoryのエラー

修正前

9章の振り返りと、GitHubで新しいリモートリポジトリ(chapter-9)を作成して紐づける|ShiftBブログ

categories の型は、文字列の配列:string[]
→エンドポイント:"categories":["React","TypeScript"]
→表示方法:{category}

修正後

9章の振り返りと、GitHubで新しいリモートリポジトリ(chapter-9)を作成して紐づける|ShiftBブログ

categories の型は、オブジェクトの配列:({ id: string; name: string }[])
→エンドポイント:"categories": [{"id": “<id名>","name": "TypeScript”}]
→表示方法:{category.id}や{category.name}

データの形が変わると、表示の仕方も変える必要がある

②useEffectの理解

useEffect(() => {
  const fetcher = async () => {
    const res = await fetch("https://q84h2qjhgn.microcms.io/api/v1/posts", {
      headers: {
        "X-MICROCMS-API-KEY": process.env
          .NEXT_PUBLIC_MICROCMS_API_KEY as string,
      },
    });
    const { contents } = await res.json();
    setPosts(contents);
    setIsLoading(false);
  };

  fetcher();
}, []);
  • useEffect(() => { ... }, [])
    → 初回レンダリング時に一度だけ実行される副作用処理

  • fetcher
    → 非同期関数で、microCMSから記事データを取得

  • fetch(...)

    fetch は外部のAPIにリクエストを送る関数

    await でレスポンス(res)が返ってくるのを待ってる

    headersX-MICROCMS-API-KEY を設定して、microCMSにアクセスするための鍵を渡している

  • res.json()
    → レスポンスをJSON形式に変換し、contents を取り出す

  • setPosts(contents)
    → ステートを更新して、Reactが再描画を行う

③APIキーのセキュリティ対策

APIキーはGitHubに公開されると危険! そのため、以下の対策が必要!

  • 環境変数の設定(.env.local に保存)

    NEXT_PUBLIC_MICROCMS_API_KEY=<APIキー>

    ※Next.jsの公式なルールとして、NEXT_PUBLIC_ がついていない環境変数は、クライアント側では使えない

  • コード内で使用:

    headers: {
      'X-MICROCMS-API-KEY': process.env.NEXT_PUBLIC_MICROCMS_API_KEY!,
    }
  • .gitignore.env.local があることにより、GitHubにアップロードされないようになっている

これで .env.local が GitHub にアップロードされず、安全にAPIキーを管理できる!

おわりに

毎回、新しい内容が増えていくけど、新しいことを知れるって本当に楽しいです!

次はいよいよバックエンド開発に入っていきます!
以前、仕事でPHPでバックエンドを実装したことがあるのでなんとなくイメージはついているのですが、Next.jsではどのように実装していくのか、とても楽しみです!

引き続き、10章も頑張っていきます🔥🔥🔥

シェア!

XThreads
ShiftB Logo
Loading...
記事一覧に戻る
XThreads
0