LaravelとmicroCMSを使用した記事アプリ開発：①API作成編


最近、日本製ヘッドレスCMSを知り簡単な記事アプリを作成してみたので記事にしました。
表題通り、今回はPHPフレームワークLaravelとヘッドレスCMSを使用し簡単なアプリ開発の流れをハンズオン形式として記載しております。
色々調べてみて、NextやJSなどは参考記事があったのですがPHPが少なかったので皆様の参考になれば幸いです。
## 全体概要

目的としては簡単な記事レベルで表示できればを目標にしました。
イメージとして以下構成になります。
認識としてご指摘ありましたら是非コメントお願いいたします！

※Laravelはローカル環境での稼働です、環境に合わせてご利用ください。

![Untitled1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/92b85b28-98c0-97ed-6ff3-95a3bb741a4c.png)


## ①の作業範囲について

今回の①ではAPIの作成、GET送信確認までを作業範囲として記載しています。
アプリの開発含め①~③まで記事にしますのでお楽しみください。

![Untitled2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/3989acb0-cfb6-3bf0-01a4-4481c169d832.png)


## 1.microCMS新規アカウント作成

今回は無料枠を使用してAPIを作成します。
API作成するために、microcms公式サイトからアカウント登録をしてください。

※すでにアカウントをお持ちの方は不要です、所有のアカウントでのログインをお願いします。

公式サイト：https://app.microcms.io/signup

![Untitled3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/d548e957-26ef-2851-c57b-02f2df01521c.png)


## 2.サービスの作成

アカウント登録が完了するとサービスの作成に進みます、プロジェクト名とプロジェクトIDなどを決めていきます。

「はじめる」をクリックします。
![Untitled4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/6ac33666-b496-5b04-f218-0b64203d21d4.png)


サービス作成から作成タイプの選択が行えます、今回は自分で任意のAPIを作成しますので、「一から作成する」を選択します。
![Untitled5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/909b8fa7-5adf-91ca-1a96-6c4c21cfca71.png)

サービス情報の入力をします、各任意の情報を入力しますが、サービスIDは他利用者と被らないように設定する必要があります。
![Untitled6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/6ab7a1a6-2795-8eed-7103-11a6a1078dbb.png)


サービスの作成が完了しました、続いてAPIの作成に取り掛かります。
![Untitled7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/0388d837-fea4-d69d-1f20-e70fa2e58caf.png)



## 3.APIを作成

サービスの作成が終わると左端にメニューバーが表示されるようになります。
コンテンツ(API)の「＋」ボタンを押します。
API作成方法を聞かれるので今回は「自分で決める」を選択します。
![Untitled8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/00ce8563-705a-d53f-c008-a2bbc3c22cfa.png)


APIの基本情報ですが、例としてニュース記事を作成するのでAPI名はニュース記事としエンドポイントは「news」としました。
※API情報についてはGETの際に使用するので各自設定したい値にしてください。
![Untitled10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/b6db9113-88f4-670b-400d-90583e6c73b9.png)

APIの型選択です、記事タイトルや本文などリスト形式で取得したいので「リスト形式」を選択しました。
![Untitled11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/b2e6ed1c-1da9-3251-a2d4-85b0c6113a6d.png)


API情報を定義します、今回の記事ではタイトル、本文、更新日の項目を設定しています。
簡単に各項目の設定基準は以下のように決めました、

フィールドID：APIレスポンスのプロパティ名、配列のキーなどがわかりやすいかも
表示名：microcmsで使用する際のコンテンツ名です、わかりやすい日本語で入力しました
種類：コンテンツを入力する際の入力フォームを指定することができます。

テキストフィールド、リッチエディタ、画像選択フォームなど様々な種類から選択可能です。
![Untitled12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/c322504b-61a5-82ab-f197-9a7b0b47ab59.png)





## 4.コンテンツ作成

まずは最初のコンテンツを登録します。
新しく作成するので追加をクリック
![Untitled13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/cb25e220-91f3-4e68-ca8b-da1afd6b4d78.png)


任意のタイトル、本文、更新日を入力し公開をクリックします。
コンテンツIDは今回伏せますが後ほどLaravelで使用するので控えておいてください。
![Untitled14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/b856dc9d-9b9a-06dc-333d-7af8d1dcf2d9.png)


公開後、APIプレビューが表示されるのでクリックします。
※下書きを追加でもAPIプレビューを行えますのでお好みの方法で表示させて下さい。
![Untitled15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/264f1a42-f12d-0dcf-9fb6-973e1f2f8fed.png)


API画面から「取得」をクリックすると先ほど記事で作成した情報がJsonリスト形式で取得できるのが確認できます。
これで記事用APIの作成が完了です、次回ではLaravelにて記事アプリを作成し、microCMSとのつなぎこみを行います。
![Untitled16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/f6629708-972f-16ce-327a-75d028c7a925.png)


## 参考サイト

https://document.microcms.io/manual/create-api

https://qiita.com/masakichi_eng/items/f3a76d40d98bec431649