概要
Raspberry Pi 4でrestAPIを受け付けるサーバを構築します。
サーバ構築方法は色々とありますが、一番手っ取り早く作れるのは、Tornadoというwebフレームワークを用いる方法だと思います。Tornadoは、Pythonで書かれたWebフレームワークで、非同期通信ライブラリです。(あまり深く考えず、とりあえず使ってみましょう!)
備忘録も兼ねて、tornadoを用いたソースコードと確認方法の雛形を残しておきます。
ソースコード
雛形はこんな感じです。とてもシンプルですね。これを雛形にして、rest通信を受けた時に行いたい処理を記載していくだけです。書き終わったら、一先ずserver.pyという名前で保存しましょう。名前は何でも良いですが。
※Raspberry pi 4以外でも使えます。
※python2 , python3の両方に対応するように書いています。
#!/bin/env python (python3を使う場合は3にしてください)
# coding: utf-8
import os
import tornado.ioloop
import tornado.web
import tornado.httpserver
import traceback
try:
import asyncio
#Python 3
except ImportError:
asyncio = None
#python 2
class MainHandler(tornado.web.RequestHandler):
def get(self):
#ここにgetを受けた時に実行したい処理を書く
def post(self):
#ここにpostを受けた時に実行したい処理を書く
def ***(self):
#ここに***を受けた時に実行したい処理を書く
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
if asyncio is not None:
asyncio.set_event_loop(asyncio.new_event_loop())
application.listen(8080) #ここは任意のポート番号を記載
tornado.ioloop.IOLoop.current().start()
テスト方法
まずは事前準備としてtornadoをインストールする必要があります。ターミナル画面から下記コマンドを実行してください。一度実行すれば、その後は必要ありません。
$sudo pip install tornado
or
$sudo pip3 install tornado
これだけです。そして、
$python server.py
or
$python3 server.py
という感じで、プログラムを実行します。
この状態で、httpリクエストを送ってみましょう。
簡単にhttpリクエストを試せるのは、chromeアプリにもなっているpostmanだと思います。( https://www.postman.com/ )
raspberry piのipアドレスは、
$ifconfig
で調べてくださいね。ローカルネットワークの外からたたきたい時は、ルータのポート転送の設定をする必要があります。そちらについてはこちら。
[Raspberry Piで簡単IoT] サーバ構築編~ポート転送~
以上、とても簡単なhttpサーバの構築方法でした。