🎃

'簡易API'を構築して個人開発のモチベーションを上げる

2025/02/04に公開

個人開発のモチベーション

私の場合画面に表示させたい情報をどのように取り扱うかでモチベーションが決まります。
Webページを個人開発する場合においても埋め込む動的データを扱う方法がある程度決まってないとモチベーションが上がりません。

Google スプレッドシートをDBとして利用する

「行」と「列」でデータを管理することができるものはDBです(暴論)
個人開発における規模のものであればスプレッドシートで十分です。
RESTで構築するのである程度規模が大きくなってきた段階でAPI側の構築を変更をすれば良いです。
またスプレッドシートをCSVでDBにインポートする事も考慮すれば初期段階はスプレッドシートで十分です。

Google Cloud 利用を可能にする

下記リンクから「無料で開始」から登録を行ってください。
https://cloud.google.com/?hl=ja

※クレジットカードの登録など個人情報が多い項目なので詳細は省きますが基本的に入力フォームに従うだけです

Google Sheets APIを有効にする

サイドメニューから「API と サービス」→「API」→「有効なAPIとサービス」を選択し
画面上部にある「+APIとサービスを有効にする」をクリックしてください。
「APIとサービスを検索」の検索バーに「Google Sheets API」と入力してください。

「Google Sheets API」を選択して「有効にする」をクリックしてください。
有効にできると画像のように「APIが有効です」と表示されます。

Google Sheets APIを有効にする

APIキーの取得

サイドメニューから「API と サービス」→「認証情報」→「認証情報を作成」を選択してください。
認証は今回APIキーで行います

APIキーを作成する

APIの制限の設定

APIの生成直後はAPIの利用制限に関する警告が出るので設定を行います

キーを制限にチェックエを入れ、選択項目から「Google Sheets API」を選択してください。

APIの制限の設定

APIキーを表示

APIキーを編集する画面に下記ボタンがあるのでそこからAPIキーを取得する事ができます。
必要になるタイミングでここから取得してください

APIキーを取得

スプレッドシートを作成する

Google Cloudを登録したアカウントでスプレッドシートを作成します

スプレッドシートを作成する

スプレッドシートの設定

共有設定の一般的なアクセスを「リンクを知っている人全員」に設定してください

スプレッドシートの設定

スプレッドシートを取得するURLを作成

スプレッドシートの共有リンクから「スプレッドシートID」をメモしておきます

https://docs.google.com/spreadsheets/d/{スプレッドシートID}/edit?usp=drive_link

スプレットシートのタブ名もメモしておく必要があります

Google Sheets API のエンドポイント

https://sheets.googleapis.com/v4/spreadsheets/{スプレッドシートID}/values/{シートのタブ名}?key={APIキー}

PostmanでAPIをテストする

コーディングして動作確認するのも良いですが、手間がかかるのでPostmanでテストします

https://www.postman.com/

メソッドはGETで下記が実行結果になります

{
  "range": "Zenn!A1:Z1000",
  "majorDimension": "ROWS",
  "values": [
    [
      "タイトル",
      "記事の概要",
      "記事のURL"
    ],
    [
      "今話題のClineを使って'じゃんけん'してみた",
      "Clineの所感",
      "https://zenn.dev/shunsuke_stack/articles/b7394a213a273b"
    ],
    [
      "AIを部下にしてペアプロした話",
      "Aiderの所感",
      "https://zenn.dev/shunsuke_stack/articles/eb9cd6c167b835"
    ],
    [
      "GitHub Copilotは自動補完してくれるだけのAIだと思ってた",
      "Copilotの所感",
      "https://zenn.dev/shunsuke_stack/articles/499f6d4bcda795"
    ]
  ]
}

感想

実行してみた感想は、カラム名とデータが紐づいて取得できているわけではないので整形する必要はあると思います。
またはそういう設計と割り切る使い方をする必要が出てくるとは思いますが、これで簡易的な「REST API」を作成することができます。

あとがき

少しでも実践的で実用的な環境に近づける事で個人開発でもデプロイするまでの道のりを着実に歩む事に繋がり、生産性のあるものを作った気になると思います。
モチベーションを下げる要因に生産性がなく誰かに公開するわけでもないものを闇雲に作る事だと思います。
今回の記事で個人開発でも動的なデータを使ったアプリケーションが簡単にできる事を知っていただければ幸いです。

GitHubで編集を提案

Discussion