5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

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

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

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

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

Google Cloud 利用を可能にする

下記リンクから「無料で開始」から登録を行ってください。

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

Google Sheets APIを有効にする

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

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

682d7bd933fc68-1.png

APIキーの取得

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

682d7bd933fc68-2.png

APIの制限の設定

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

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

682d7bd933fc68-3.png

APIキーを表示

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

682d7bd933fc68-4.png

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

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

682d7bd933fc68-5.png

スプレッドシートの設定

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

682d7bd933fc68-6.png

スプレッドシートを取得する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でテストします

メソッドは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」を作成することができます。

あとがき

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

一緒に働く仲間を募集しています!

株式会社コネクター・ジャパンでは一緒に働いてくれる仲間を募集しています!

事業拡大に伴い、エンジニアを大募集しています。
興味のある方は下記リンクから弊社のことをぜひ知っていただき応募してもらえると嬉しいです。

▼会社について

▼代表メッセージ

▼応募はこちら

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?