概要
GAS で作成した関数を API として公開する。makefile で curl で API を呼び出し、ターミナルから実行する手順についてまとめる。
成果物
「name」「hp」「attack」列を用意しているスプレッドシートに、makefile で指定した値を追加する
↓
前提知識
GoogleAppsScript(GAS) で 「Hello World」する方法
全体像
手順
GAS で関数を作成
スプレッドシートの [ツール] → [スクリプトエディタ] に以下のコードを記述
シート名は「monsters」とする
const doPost = (e) =>{
const data = {
name:e.parameter.name,
hp:e.parameter.hp,
attack:e.parameter.attack
}
appendMonster(data);
return ContentService.createTextOutput("OK!")
}
const appendMonster = (data) => {
const spreadSheet = SpreadsheetApp.getActive();
const monstersSheet = spreadSheet.getSheetByName("monsters")
monstersSheet.appendRow([data.name,data.hp,data.attack]);
}
通信する際に利用する関数名として、「doPost」と「doGet」がある。呼び出した値を利用する場合は「doPost」、呼び出した値を返す場合は「doGet」を利用する。ここでは、呼び出した値をスプレッドシートに書き込むため「doPost」を利用した。
API として公開
[Project version:]で [New] を選択
※理由は不明だが、「New」を選択しないと URL が更新されない。
Makefile を作成し、curl を利用して API を呼び出す記述を追加
作業フォルダーとして、「gas-client」 フォルダーを作成し、その中に Makefile を作成する
Makefile には、変数で API の URL を定義し、appenddata で curl コマンドを実行する
API_URL = 'API 公開時に取得した URL'
appenddata:
curl -L $(API_URL) \
-F 'name=リベンジ' \
-F 'hp=50' \
-F 'attack=10'
ターミナルで実行
gas-client $ make appenddata
curl -L 'API 公開時に取得した URL' \
-F 'name=リベンジ' \
-F 'hp=50' \
-F 'attack=10'
OK!gas-client $