microCMS をさわってみる その6

日本製のHeadless CMS、microCMSをさわってみる。その6

f:id:jotaki:20200303155515j:plain

GitHub: https://github.com/yuheijotaki/micro-cms-ramen
Netlify: https://ramen.yuheijotaki.dev/

generate設定

Gitにプッシュした際に、APIから記事一覧情報取得して詳細ページを生成する必要があるので nuxt.config.js に設定を書く。
参考: Nuxt.jsとmicroCMSで採用ページを作成してみよう!

nuxt.config.js に追記

// generate時にaxiosを使って詳細ページを生成
const axios = require('axios')

export default {
  // ...
  // Netlifyへ詳細ページの自動デプロイ
  generate: {
    routes() {
      const demo = axios
        .get('https://jtk.microcms.io/api/v1/demo', {
          headers: { 'X-API-KEY': process.env.API_KEY }
        })
        .then(res => {
          return res.data.contents.map(post => {
            return '/posts/' + post.id
          })
        })
      return Promise.all([demo]).then(values => {
        return values.join().split(',')
      })
    }
  }
}

環境変数はビルド実行されるNetlify側へ設定する必要があります。
Settings => Build & deploy => Environment

f:id:jotaki:20200304143514p:plain

これで設定完了。
設定した nuxt.config.js をmasterにプッシュして動作確認してみます。

Netlifyのサイト管理画面 => Deploys で Building が1分以内には始まるのでクリック

Deploy log に

2:12:03 PM: ✔ Generated /posts/demo02
2:12:03 PM: ✔ Generated /posts/demo01
2:12:03 PM: ✔ Generated /posts/9itQJnwUs

があるので詳細ページの生成はうまくいっているよう。

f:id:jotaki:20200304143534p:plain

最後の Finished processing build request in XXXs を確認したらサイトをみにいく。
一覧ページのリンクをクリックして各詳細ページのコンテンツが描画されていれば成功。

f:id:jotaki:20200304143555p:plain

残りやること

  • webhook設定(microCMSを更新したら自動ビルドが走るようにする)
  • かるくスタイリングする