GASでPOSTとGETのWebAPIを作成する

GAS

GASでウェブアプリを作成することができ、それを活用することでWebAPIを作ることができます。

スプレッドシートをDBにしたRestfulもどきのAPIも作ることができるので、遊ぶにはいい感じです。

今回はPOSTとGETを使った一番シンプルなAPIを作ってみます。

最後にCURLを使ってAPIにアクセスをしてみましょう。

スポンサーリンク

GASのプロジェクトの作成

Googleドライブ内で新規作成からその他>Google Apps Scriptを開きます

GASプロジェクト新規作成

新規プロジェクトが作成され、空っぽの関数があります。

ここで、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
}

JsonData.keyとは、POSTで送るJSONのプロパティ名です。
後ほど実行時に指定します。

スポンサーリンク

GASプロジェクトをデプロイする

コードが作成できたので、実際に使えるようにデプロイしてみます。

右上のデプロイ>新しいデプロイをクリック

歯車マークからウェブアプリを選択する

次のユーザーとして実行を自分に、アクセスできるユーザーを全員に設定します。

実行後、デプロイしたAPIのURLが発行されました。

こちらのアドレスをメモしておきましょう。

スポンサーリンク

APIへのアクセス

POSTテスト

コマンドプロンプトを使用して、GASにPOST送信してみましょう。

curl -L -d "{\"key\":\"myfirstpost\"}" https://script.google.com/macros/s/********/exec

↑先ほどデプロイしたURLに変更してください

POSTで処理するので、こちらから文字列を送ることができます。API側で加工して、結果を返却します。

今回はJSON形式で入力したものをそのまま返却しています。

①windowsで行っているので、ダブルコーテーションに対してエスケープ文字[\]が必要です。

②JSON送信しているところが{“key”:”myfirstpost”}となっています。このkeyというのが、GAS内でプロパティ名として設定しているところです。
こちらのプロパティ名を変更するのであれば、GAS側でもその取得名を変更します。

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を作ってみます。

GAS
スポンサーリンク
ようをフォローする
スポンサーリンク
DynaKnowledge

コメント

タイトルとURLをコピーしました