PythonでFlaskを使用しAPIを作成しJSONで応答を返す

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オブジェクトとして返されることを確認できました。

コメント

タイトルとURLをコピーしました