GASでウェブアプリを作成することができ、それを活用することでWebAPIを作ることができます。
スプレッドシートをDBにしたRestfulもどきのAPIも作ることができるので、遊ぶにはいい感じです。
今回はPOSTとGETを使った一番シンプルなAPIを作ってみます。
最後にCURLを使ってAPIにアクセスをしてみましょう。
GASのプロジェクトの作成
Googleドライブ内で新規作成からその他>Google Apps Scriptを開きます
新規プロジェクトが作成され、空っぽの関数があります。
ここで、doPostとdoGetの関数を作成します。
doPostがPOSTで呼び出しされたとき、doGetがGETで呼び出しされたときに読み込まれる関数となります。
実際のコードはこちら↓
function doPost(e) {
const string = e.postData.getDataAsString()
const JsonData = JSON.parse(string)
const input = JsonData.key //POST時のプロパティ名
const data = {"yourInputWord":input}
const response = ContentService.createTextOutput()
response.setMimeType(ContentService.MimeType.JSON)
response.setContent(JSON.stringify(data))
return response
}
function doGet(e) {
const data = {"value": "Hello world!!"}
const response = ContentService.createTextOutput()
response.setMimeType(ContentService.MimeType.JSON)
response.setContent(JSON.stringify(data))
return response
}
GASプロジェクトをデプロイする
コードが作成できたので、実際に使えるようにデプロイしてみます。
右上のデプロイ>新しいデプロイをクリック
歯車マークからウェブアプリを選択する
次のユーザーとして実行を自分に、アクセスできるユーザーを全員に設定します。
実行後、デプロイしたAPIのURLが発行されました。
こちらのアドレスをメモしておきましょう。
APIへのアクセス
POSTテスト
コマンドプロンプトを使用して、GASにPOST送信してみましょう。
curl -L -d "{\"key\":\"myfirstpost\"}" https://script.google.com/macros/s/********/exec
↑先ほどデプロイしたURLに変更してください
POSTで処理するので、こちらから文字列を送ることができます。API側で加工して、結果を返却します。
今回はJSON形式で入力したものをそのまま返却しています。
GETテスト
curl -L https://script.google.com/macros/s/******/exec
↑先ほどデプロイしたURLに変更してください
GETで送っているので、データの取得のみが可能です。スプレッドシートのデータを表示するなどの利用ができます。
変更してデプロイする
中身を変更した場合は新しいデプロイではなく、デプロイを管理から行います。
編集からバージョンを新バージョンに変更してデプロイをクリックします
これにより、同じURLのままデプロイができます。
ここまでで、一通りのAPIが作成できるようになりました。
本当のRestAPIであれば、POSTとGET以外にPUTやDELETEなどのフックを作ることができますが、GASではそれができません。
APIに対して変更や削除を行うよう指示をする場合は、POSTで送った後に振り分けを行う必要があります。
次からはGASを用いてCRUDのAPIを作ってみます。
コメント