FastAPIの環境をコアモジュールとDockerの二つの方法で構築する方法

概要

Python ベースの Web フレームワークである FastAPI の様々な環境構築方法について解説します。

本記事では、以下2通りの方法で環境構築をする方法を紹介します。


  1. FastAPIのコアモジュールで環境構築する方法
  2. 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へのアクセスが制限されている場合があります。必要に応じて、ファイアウォールやネットワーク設定を調整してください。