スプレッドシートでapiが作れるらしいので試してみる

元記事はこちらです
https://qiita.com/gurigurico/items/2432ae08118050a280e8

スプレッドシートからjsonファイルを提供できるらしいです。

スプレッドシートを作ろう

スクリプトエディタを起動

スクリプトエディタからjsonを作る

データを整形する。
元記事のスクリプトを引用させていただきました。

function doGet() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('シート1')
  const rows = sheet.getDataRange().getValues()
  const keys = rows.splice(0, 1)[0] 

  const data = rows.map(function (row) {
    var item = {}
    row.map(function (val, i) {
      item[String(keys[i])] = val
    })
    return item
  })

  return ContentService.createTextOutput(JSON.stringify(data)).setMimeType(ContentService.MimeType.JSON)
}

公開する。
全員に公開で、アプリケーションを承認するとURLが出てきます。 h

https://script.googleusercontent.com/macros/echo?user_content_key=9a7pZ_BBAtLCjhH1866wT7fyzdKaxcwIWGwDkfdHQv0JzLSqM67IKcUsvTst2ussqGj4_yl-IFynOpE1VMvY_OJUzgJCpTSYm5_BxDlH2jW0nuo2oDemN9CCS2h10ox_1xSncGQajx_ryfhECjZEnGmZMfbfOToA7xjsrq03DF80Az8Jlk1D_cIaUahVhh9oocK5TpRSqfMYZpTak_o22Q&lib=MCREZQWbIOU9IyyNmKrcX-B-j0EsM5XUi

できました!

ちゃんと表示されます。

試してみる

スプレッドシートを更新すると・・・?

ちゃんとjsonにも反映されます。

これはすごい。
すごい可能性を感じるので、これについてもう少し掘り下げてみたいと思います。

続き

おまけ

function doGet() {
  //シートを取得する
  const sheet = SpreadsheetApp.getActive().getSheetByName('シート1');
  const rows = sheet.getDataRange().getValues();

  //Browser.msgBox(JSON.stringify(rows));
  return ContentService.createTextOutput(JSON.stringify(rows)).setMimeType(ContentService.MimeType.JSON);
}

縦並びの場合は多分これでいける。