FlaskでバックエンドAPIを作成する(入門編)

python アプリケーション開発

こんにちは、ITエンジニアのz_a_k_iです!^^

今回はPythonのFlaskを使ってバックエンドAPIを作成します。Pythonの開発環境の構築に始まり、簡単なバックエンドAPIを作成する方法をご紹介します。

Flaskの開発環境構築

Flaskを動かすための環境を構築します。

Pythonのインストール

PythonはFlaskを動かすための基盤となる言語です。

最新版のPythonをインストールすることで、セキュリティの強化と最新のライブラリが利用可能になります。

インストール手順は簡単で、公式サイトからダウンロードしたインストーラーを実行するだけです。

仮想環境の作成

仮想環境は、プロジェクトごとにPythonの実行環境を分離するためのツールです。

実行環境を分離することで、異なるプロジェクト間でのライブラリのバージョン衝突を防ぐことができます。

以下のコマンドを使って、プロジェクトディレクトリ内に仮想環境を作成します。

python -m venv venv

仮想環境のアクティベーション

仮想環境を有効にすることで、その環境内でインストールされたパッケージとPythonインタープリタを使用することができます。

仮想環境を有効化するには、以下のコマンドを実行します。

source venv/bin/activate  # Unix系OSの場合
venv\Scripts\activate  # Windowsの場合

Flaskのインストール:

仮想環境をアクティベートした状態で以下のコマンドを実行することで、Flaskをインストールします。

以下コマンドを実行することで、Flaskを使った開発が可能になります。

pip install Flask

サンプルプログラムの作成

次に、簡単なAPIを作成していきます。

アプリケーションファイルの作成

app.pyファイルを作成し、以下のソースコードを貼り付けます。

このソースコードは、/show_params エンドポイントにGETリクエストを送信すると、クエリパラメータを受け取り、サーバーのコンソールに表示し、JSON形式でクライアントに返す簡単なFlask WebAPIです。

debug=Trueオプションを付けることで、コードに変更があった際にサーバが自動的に再起動し、エラーが発生した場合にはデバッグ情報が表示されます。

debug=Trueは開発中に役立ちますが、本番環境ではセキュリティ上の理由からdebugモードを無効にすることをお勧めします。

app.pyはFlaskアプリケーションのエントリーポイントです。ここにルーティングとビュー関数を定義します。

@app.route('/show_params')は、http://127.0.0.1:5000/show_paramsにアクセスがあったときにshow_params関数を呼び出すようFlaskに指示します。

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/show_params', methods=['GET'])
def show_params():
    # リクエストからパラメータを取得
    args = request.args
    # パラメータを画面に表示(実際のプロダクションコードでは、フロントエンドにデータを送信するためのテンプレートを使用します)
    print(args)
    # パラメータをそのままレスポンスとして返す
    return jsonify(args)

if __name__ == '__main__':
    app.run(debug=True)

Flaskの実行

APIの実行

以下のコマンドを実行すると、Flaskアプリケーションが起動し、デフォルトでlocalhost5000番ポートで待ち受け状態になります。

これにより、開発中のAPIをテストすることができます。

flask run

アクセステスト

ブラウザでhttp://localhost:5000/show_params/test=valueのように実行すると、画面上にtestというリクエストパラメータの値 value というレスポンスが返ってきます。

レスポンスが帰ってこれば、」Flaskが正しく動作しています。

まとめ

本記事では、Flaskを使用してバックエンドAPIを作成する方法について記載しました。

FlaskはPythonで書かれた軽量なウェブフレームワークで、簡単にウェブアプリケーションやAPIを構築することができます。

本記事で作成したアプリケーションをAWS Fargateなどと組み合わせることで簡単にサービスを公開できます。

本記事が皆様の参考となりましたら幸いです。

コメント

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