2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

バックエンド知識がない自分がGoogleAppsScriptを使って爆速でAPIを作って爆速で没にした話

Posted at

はじめに

これはバックエンドの知識がない自分がFirestore+GoogleAppsScriptで簡易DBを構築した話の前段階の話です。

結論から言うと

  • スプレッドシートとGoogleAppsScriptを使って簡易API作った!
  • 動作速度が遅くて没にした:cry:
  • 個人利用やテストデータを試すには十分使えると思うよ!

概要

GoogleAppsScript(GAS)には、作成したスクリプトを「Webアプリケーションとして導入」するという機能があります。
これを使うと、自分でサーバーを立てたりする事なく超簡単にAPIを公開できます

今回はGETリクエストが来たらスプレッドシートのデータを取得し、JSONで返すというAPIを作る事で、スプレッドシート上でDB管理のような事をできないか?と考えて実装しました。

実装方法

「スプレッドシート上のデータを取得する処理を書く」
までは前回と同じなので省略します。前回の記事↑を参照ください。

GETリクエストをGASで受け取る処理を実装する

GASにはdoGetというfunctionが用意されており、これを実装する事でGETリクエストを受け取った時の処理を記述することができます。(POSTリクエストはdoPost
詳しくは公式を確認してください。

今回はGETリクエストを受け取った時にシートの値をJSONとして返します。

function doGet(e){ 
  // シートの値を取得
  var json = getSheetValue(sheet);
  var out = ContentService.createTextOutput();

  // MimeTypeをJSONに設定
  out.setMimeType(ContentService.MimeType.JSON);

  // JSONテキストをセット
  out.setContent(JSON.stringify(json));
  return out;
}

たったこれだけです。
これをAPIとして公開します。

作成したスクリプトを公開する

GASの[公開] > [ウェブアプリケーションとして導入]を選択します。
スクリーンショット 2019-12-24 13.46.06.png
すると下記のようなウィンドウが出ると思います。
スクリーンショット 2019-12-24 13.48.07.png
Project version:Newを選びます。(ここでバージョン管理もできます)
一番下のWho has access to the app:Anyone, even Anonymous(全員(匿名ユーザを含む))に変更し、Deployを選択します。
スクリーンショット 2019-12-24 13.55.29.png
上記のようなウィンドウが出たら、公開完了です。
テキストボックスに表示されている
https://script.google.com/macros/s/{xxxx}/exec
がAPIのURLになりますので、ブラウザでアクセスしてみます。
スクリーンショット 2019-12-24 14.00.07.png
このようにJSONが表示されていれば成功です。
超簡単にAPIが作成できました!

問題点

このAPIにも問題点があり、それは動作速度が遅いことです。
私のアプリでは数件のデータにもかかわらず取得に2秒弱かかり、これは使えないという事で約30分で実装したものを約30秒で没にしました。実装も爆速なら没までのスピードも爆速です。

ただ、自分の使い方には合っていなかったというだけで、個人で試しに使ってみるには十分有用だと思います。

参考リンク

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?