PythonでFlaskを使用しAPIを作成しJSONで応答を返してみます。
今回はFlaskを用います。このライブラリは、Pythonの標準ライブラリではありませんので、事前にインストールしておく必要があります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■Flaskを使用しREST APIを構築する
では、Flaskを使用しAPIを作成しJSONで応答を返すスクリプトを書いていきます。
■コード
from flask import Flask,jsonify app = Flask(__name__) @app.route('/') def test_j(): test_j = { 'name':'tanaka', 'hometown':'osaka', 'sex':'male' } return jsonify(test_j) app.run()
「from import」でflaskのFlaskとjsonifyを呼び出します。
その後、「Flask(__name__)」でFlaskのインスタンスを作成します。__name__ は現在のPythonモジュールの名前。
作成後、route()デコレータを用いて’/’というルートを作成し、その後、test_j()という関数を定義します。定義後、URLと関数を関連付けます。なお、関数が呼び出された時に実行される処理としては、波括弧”{ }”を用い、test_jという辞書を定義し、辞書内の各要素を囲み、コロン”:”でキーと値を記述します。
定義後、returnでjsonify()を用います。jsonify()という関数は、JSONをFlaskResponseオブジェクトとして返すもので、Flaskに付属しています。関数の括弧内には引数,パラメータとしてtest_jを渡します。
最後にapp.run()を用いてアプリケーションの実行を行います。
■実行・検証
このスクリプトを「api_j.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
* Serving Flask app 'f_test_api' (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
実行してみると、上記のメッセージが出力されます。出力後、「http://127.0.0.1:5000/」のURLをコピーし、Webブラウザを起動します。起動後、WebブラウザのアドレスバーにURLを貼り付けてアクセスします。
アクセスすると、jsonify()を用いたことで、今回定義した辞書がJSONオブジェクトとして返されることを確認できました。
コメント