IoTの全体像の例「照度センサーの情報を表示する」
http://ameblo.jp/smeokano/entry-12240624461.html
の続きです。上記のエントリーで
「それぞれの詳しいプログラムは、後日、この下に掲示します。」
とありますが、その「詳しいプログラム」第三弾、サーバー部分です。
●サーバー部とは
以下の2つのWebAPI(RESTだけど、JSONでなく、テキストを返している)
(1)GW部からHTTPプロトコルで送られてくるデータを保存します
具体的には、mydataに引数の値(data)をセットしています
URL setdata
引数 data セットしたいデータの値
→今回はIDをつけないこととします。
(2)表示部からHTTPプロトコルで送られてくるデータ取得要求に対し、
データを返します。 具体的には、mydataの値を返り値として返します。
URL getdata
引数 id 取得したいデータのID
→今回はIDは無視して、セーブしているデータを返します。
本当はGETじゃなくって、POSTのほうがいいです。
けど、サンプルで面倒なのでGET型にしてしまいました
●サーバー部概要
上記の2つのWebAPIをSpring Bootを使って作っています。
MainContriller(つづりまちがえたMainControllerとしようと思った)
のなかに、2つのAPIをRestControllerとして作成しています。
作成の仕方は、
Spring Bootしてみる その2 RESTの作り方
http://ameblo.jp/smeokano/entry-12238931176.html
に、インストールの仕方は
Spring Bootしてみる その1 インストール
http://ameblo.jp/smeokano/entry-12192851591.html
に書いたので、今回は省略します。
●実際のプログラム
こんなかんじ
package com.example;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMethod;
@RestController
public class MainContriller {
String mydata = "----";
@RequestMapping(value="/setdata",method=RequestMethod.GET)
public String SetData(@RequestParam("data")String data)
{
mydata = data;
return "ok";
}
@RequestMapping(value="/getdata",method=RequestMethod.GET)
public String GetData(@RequestParam("id")String id)
{
return mydata;
}
}