FastAPIの環境をコアモジュールとDockerの二つの方法で構築する方法
概要
Python ベースの Web フレームワークである FastAPI の様々な環境構築方法について解説します。
本記事では、以下2通りの方法で環境構築をする方法を紹介します。
- FastAPIのコアモジュールで環境構築する方法
- Dockerを使用して、環境構築する方法
ここでは、以下バージョンを使用した、FastAPIの環境を構築する方法を説明します。
FastAPI v0.100.0
Python v3.11.4
uvicorn v0.22.0
また、今回作成するコードは全て、以下に掲載しています。 https://github.com/wiblok/FastAPI
※ FastAPIはPythonで動作します。Pythonがインストールされていない場合は、公式ウェブサイトからダウンロードしてインストールしてください。
Python
コアモジュールを使った環境構築方法
この方法では、FastAPI のコアモジュールを import して使用します。 以下の手順に従って実行してください。
FastAPI単体で環境を構築するには、以下の前提条件を満たす必要があります
- Python 3.6以上がインストールされていること
- pipがインストールされていること
プロジェクトディレクトリの作成
まず、FastAPIプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください
mkdir fastapi-core-project
プロジェクトディレクトリへの移動
プロジェクトディレクトリに移動します。以下のコマンドを実行してください:
cd fastapi-core-project
移動後、プロジェクトのルートディレクトリに移動します。
FastAPIとUvicornのインストール
FastAPIとUvicorn(ASGIサーバー)をインストールします。以下のコマンドを実行してください:
pip install fastapi uvicorn
これにより、FastAPIとUvicornがプロジェクトに追加されます。
アプリケーションの作成
FastAPIアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: main.py
)を作成し、以下のコードを追加してください:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "FastAPI"}
上記の例では、FastAPIアプリケーションの基本的な構造を示しています。@app.get("/")
デコレーターを使用してルートパスに対するハンドラーを定義し、レスポンスとして{"Hello": "FastAPI"}
を返します。
サーバーの起動
最後に、FastAPIサーバーを起動します。以下のコマンドを実行してください:
uvicorn main:app --reload
サーバーが正常に起動すると、コンソールに「Uvicorn running on http://127.0.0.1:8000」(デフォルトのホストとポート)と表示されます。ブラウザでhttp://localhost:8000にアクセスして、FastAPIアプリケーションが正常に動作していることを確認してください。
テスト
curl http://localhost:8000/
Dockerを使った環境構築方法
まずはじめに、Dockerをインストールしてください。公式のDockerウェブサイトから、対応するオペレーティングシステムに合わせたDockerのインストーラーをダウンロードし、インストールを行ってください。
プロジェクトディレクトリの作成
まず、FastAPIプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください:
mkdir fastapi-docker-project
プロジェクトディレクトリへの移動
プロジェクトディレクトリに移動します。以下のコマンドを実行
してください:
cd fastapi-docker-project
移動後、プロジェクトのルートディレクトリに移動します。
アプリケーションの作成
FastAPIアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: main.py
)を作成し、以下のコードを追加してください:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "FastAPI"}
Dockerfileの作成
FastAPIアプリケーションをDockerイメージとしてビルドするために、プロジェクトフォルダ内にDockerfile
という名前のファイルを作成し、以下の内容を追加します。
FROM python:3.11.4
WORKDIR /app
COPY . /app
RUN pip install fastapi uvicorn
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Dockerイメージのビルド
以下のコマンドを使用して、Dockerイメージをビルドします。
docker build -t fastapi-docker-project .
Dockerコンテナの実行
ビルドしたDockerイメージからDockerコンテナを実行します。
docker run -p 8000:8000 -d fastapi-docker-project
これにより、FastAPIアプリケーションがDockerコンテナ内で実行され、ホストのポート8000にマッピングされます。ブラウザやAPIテストツールなどから http://localhost:8000 にアクセスすることでFastAPIアプリケーションにアクセスできます。
テスト
curl http://localhost:8000/
以上が、Dockerを使用してFastAPIアプリケーションを環境構築する手順です。Dockerを活用することで、環境構築の手間を減らし、開発プロセスをスムーズにすることができます。
注意: ホストのファイアウォールやネットワーク設定によっては、ポート8000へのアクセスが制限されている場合があります。必要に応じて、ファイアウォールやネットワーク設定を調整してください。