Flask + uWSGI で API を実装する方法をまとめました。
WSGI
WSGI(Web Server Gateway Interface)とは Python で Web サーバーと Web アプリケーションを接続するための標準化されたインターフェース定義です。
Flask は WSGI に対応しています。
uWSGI
uWSGI は WSGI アプリケーションコンテナで HTTP クライアントからのリクエストを WSGI アプリケーションに転送してくれます。
イメージはこんな感じです。
HTTP Client <-> uWSGI <-> Flask
uWSGI インストール
$ cd ~/python/api
$ source api/bin/activate
(api)$ pip3 install uwsgi
uWSGI 実行
Flask は以下の記事で実装済みとします。
$ uwsgi --http=0.0.0.0:8000 --wsgi-file=app.py --callable=app
$ curl http://localhost:8000/hello
{'message': 'Hello world!'}
uWSGI 経由で Flask の API を実行できているようです。
設定ファイル使用
引数に指定した設定を ini にまとめます。
$ vi uwsgi.ini
$ uwsgi uwsgi.ini
[uwsgi]
wsgi-file=app.py
callable=app
http=0.0.0.0:8000
$ curl http://localhost:8000/hello
{'message': 'Hello world!'}
これで Flask + uWSGI で API を叩けるようになりました。