--> microCMSのAPIに手こずった話 | BORDERLESSS
scroll

microCMSのAPIに手こずった話

最近はReactと並行してTypescriptなどのモダンなフロントエンドを勉強しています。
今回はその中でも、ヘッドレスCMSを触ってみようと試行錯誤しました。
今回取り入れたのはヘッドレスCMSの代表格とも言えるmicroCMS。日本語のドキュメントが多いのが嬉しいです。
でも結果、表示させることすら手こずったので、メモしておきます。

ドキュメント通りにやってundefined

ヘッドレスCMSも初学者なので、とりあえず公式ドキュメント通りに進めます。

https://blog.microcms.io/microcms-next-jamstack-blog/

microCMS + Next.jsでJamstackブログを作ってみよう

1.Next.jsのプロジェクトを生成しておく

npx create-next-app microcms-next-jamstack-blog

2.microCSMを開始する(先述の公式がわかりやすいので割愛)

3.APIキーをenvファイルで保護・・・じゃないんだわ

APIキーらしきものはあるけど、これをどこでどう使うのか。

  • 適当なhtmlファイルを作成(今回はtest.html)
  • 一旦microCMSでコンテンツを作る
  • 下記参考サイトの見本HTMLソースをコピペ
  • 自分のAPI&X-MICROCMS-API-KEYを書き換え
<!--
コピペした見本HTMLソース
fetchのURLと"X-MICROCMS-API-KEY":を自分のものに書き換えます
-->
<!DOCTYPE html>
<html lang="ja">
  <body>
    <main>
      <h1 id="title"></h1>
      <hr>
      <div id="body"></div>
    </main>
    <script>
      fetch("https://micro.microcms.io/api/v1/news/0ik_dv015", {
        headers: {
          "X-MICROCMS-API-KEY": "1598164e-2d58-488c-a4af-c51bd7d131a5"
        }
      })
        .then(res => res.json())
        .then(json => {
          document.getElementById("title").innerHTML = json.title;
          document.getElementById("body").innerHTML = json.body;
        })
   </script>
  </body>
</html>

それで表示されたのがこれ

undefinedは友達

Why Japanese people????

見本HTMLソースをよく読もう

fetch("https://micro.microcms.io/api/v1/news/0ik_dv015"

エンドポイントはv1/hogehoge(任意のプロジェクト名)ですが、見本をよく見たら、後ろにもうひとつ文字列がありますね。だから思い当たる文字列を探します。

ヘッドレスCMSの管理画面にあります

これっぽいな。コンテンツIDをfetchに追加します。

fetch("自分のエンドポイント/自分で作成したプロジェクト名/コンテンツID"

書き換えたソースをファイルに貼り直すと・・・

ヘッドレスCMSで作成したコンテンツが表示されました

できた!!!

とりあえず表示はできたので、これをどう生かすのか、先人たちの制作物を見ながら覚えていきたいと思います。

APIがむき出しだとセキュリティ的にまずいということで、次回はenvファイルについて調べます。