GASでウェブアプリを作成することができ、それを活用することでWebAPIを作ることができます。
スプレッドシートをDBにしたRestfulもどきのAPIも作ることができるので、遊ぶにはいい感じです。
今回はPOSTとGETを使った一番シンプルなAPIを作ってみます。
最後にCURLを使ってAPIにアクセスをしてみましょう。
GASのプロジェクトの作成
Googleドライブ内で新規作成からその他>Google Apps Scriptを開きます
![GASプロジェクト新規作成](https://dyna-knowledge.com/wp-content/uploads/2023/11/1-make-GAS-project-1024x544.png)
新規プロジェクトが作成され、空っぽの関数があります。
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/2-new-project-1024x527.png)
ここで、doPostとdoGetの関数を作成します。
doPostがPOSTで呼び出しされたとき、doGetがGETで呼び出しされたときに読み込まれる関数となります。
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/3-create-function-1024x527.png)
実際のコードはこちら↓
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プロジェクトをデプロイする
コードが作成できたので、実際に使えるようにデプロイしてみます。
右上のデプロイ>新しいデプロイをクリック
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/4-deploy-new-1024x526.png)
歯車マークからウェブアプリを選択する
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/5-deploy.png)
次のユーザーとして実行を自分に、アクセスできるユーザーを全員に設定します。
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/6-deploy-detail.png)
実行後、デプロイしたAPIのURLが発行されました。
こちらのアドレスをメモしておきましょう。
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/7-deploy-after.png)
APIへのアクセス
POSTテスト
コマンドプロンプトを使用して、GASにPOST送信してみましょう。
curl -L -d "{\"key\":\"myfirstpost\"}" https://script.google.com/macros/s/********/exec
↑先ほどデプロイしたURLに変更してください
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/8-post.png)
POSTで処理するので、こちらから文字列を送ることができます。API側で加工して、結果を返却します。
今回はJSON形式で入力したものをそのまま返却しています。
GETテスト
curl -L https://script.google.com/macros/s/******/exec
↑先ほどデプロイしたURLに変更してください
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/9-get.png)
GETで送っているので、データの取得のみが可能です。スプレッドシートのデータを表示するなどの利用ができます。
変更してデプロイする
中身を変更した場合は新しいデプロイではなく、デプロイを管理から行います。
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/10-update-deploy-1024x525.png)
編集からバージョンを新バージョンに変更してデプロイをクリックします
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/11-update-deploy.png)
これにより、同じURLのままデプロイができます。
![](https://dyna-knowledge.com/wp-content/uploads/2023/11/12-update-deploy.png)
ここまでで、一通りのAPIが作成できるようになりました。
本当のRestAPIであれば、POSTとGET以外にPUTやDELETEなどのフックを作ることができますが、GASではそれができません。
APIに対して変更や削除を行うよう指示をする場合は、POSTで送った後に振り分けを行う必要があります。
次からはGASを用いてCRUDのAPIを作ってみます。
コメント