栄養価を算出するWeb APIをGASで作成しました!

GoogleAppsScript

個人的に、APIという言葉の響きが、なんとなく好きです。

なので、なんとなく、APIを作成してみたかったのですが、難しそうだなーという思いから避けてきました。

しかし、Google Apps Scriptを用いることで、サーバーレスで簡単にAPIを作成できるということだったので、少し手を出してみました。

非常に簡単なものなので、エラー処理などをおこなっておらず、実用に耐えうるものではありませんが、セキュリティ上の問題がなければ、完成度50%でも公開するのが私の信条なので、とりあえず公開してみました。

栄養計算APIの使い方

使い方は簡単です。

以下のURLのパラメーターに、食品番号(num)と重量(weight)を入力するだけです。

https://script.google.com/macros/s/AKfycbx7WZ-wdIBLqVnCxPwzedIdjhC3CMjhAcV0MufN2gJd-xsO3xw/exec?num=&weight=

 

試しに、食品番号:01001と重量100gを入力して、ブラウザで表示させてみましょう。URLは以下のようになります。

https://script.google.com/macros/s/AKfycbx7WZ-wdIBLqVnCxPwzedIdjhC3CMjhAcV0MufN2gJd-xsO3xw/exec?num=01001&weight=100

 

すると、以下のようなデータが表示されるかと思います。JSON形式で、食品名やエネルギーなどを返してくれます。

 

スプレッドシートで扱ってみよう

せっかくGASで作ったので、GASで扱ってみたいと思います。

ブラウザに直打ちでない場合、numは5桁の数字を文字列で入力してください。

 

function test() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();
  var url = 'https://script.google.com/macros/s/AKfycbx7WZ-wdIBLqVnCxPwzedIdjhC3CMjhAcV0MufN2gJd-xsO3xw/exec?'
  var num = "01001"; //numは文字列
  var weight = 100;
  var res = UrlFetchApp.fetch(url + 'num=' + num + '&weight=' + weight);
  var json = JSON.parse(res.getContentText());
  Browser.msgBox("食品番号"+ num + "の食品名は" + json["食品名"] + "です。");
  Browser.msgBox( "重量" + weight + "グラムあたりのエネルギー(kcal)は" + json["エネルギー(kcal)"] + "です。");
}

 

 

食品番号がわからないと栄養計算できないため、用途は非常に限られるかもしれませんが、使い方によっては便利かもしれませんね。

 

GASだと結構手軽にAPIを作成できる

今まで敷居が高いと感じていたAPI。まだ実用に耐えうるようなものではありませんが、意外と簡単に実装できてよかったです。

Webから利用できるため、他にもいろいろ作ってみても良さそうですね。