スポンサーリンク

【Python】FastAPIを使ったモダンなWeb APIの構築

記事内に広告が含まれています。
スポンサーリンク

はじめに

FastAPIは、現代的なウェブアプリケーションやマイクロサービスを構築するための高性能なPythonフレームワークです。特に非同期処理をサポートしており、Python 3.6+ の型ヒントを利用することで、開発者がより早く安全にアプリケーションを開発できるように設計されています。この記事では、FastAPIの基本的な使い方と一緒に、小さなAPIのサンプルコードを提供します。

スポンサーリンク

FastAPIの特徴

  • 高速な性能
    Starlette(ASGIフレームワーク)上に構築されており、Uvicorn(ASGIサーバー)と組み合わせることで、非常に高速な性能を実現します。
  • 型安全
    Pythonの型ヒントを利用して、リクエストとレスポンスのデータの検証を自動で行います。
  • 簡単な依存性注入
    依存性注入システムを備えており、テストやデータベースセッションの管理が容易になります。
  • 自動ドキュメント生成
    OpenAPIスキーマを自動生成し、Swagger UIやReDocを使用してドキュメントを提供します。

環境設定

FastAPIを使い始める前に、Pythonの環境設定が必要です。以下のコマンドで必要なパッケージをインストールします。

pip install fastapi[all]

基本的なAPIの構築

以下のステップで、シンプルなAPIを構築します。このAPIは、ユーザー名を受け取り、挨拶を返すものです。

メインアプリケーションファイル

main.pyを作成し、以下のコードを記述します。

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

@app.post("/items/")
async def create_item(item: Item):
    return item
パスパラメータとクエリパラメータ

FastAPIでは、関数のパラメータが自動的にパスやクエリのパラメータとして解釈されます。型ヒントを使うことで、これらのパラメータの検証も自動で行われます。

モデルの定義

Pydanticを使用してリクエストとレスポンスのモデルを定義します。以下のようにItemクラスを定義することで、リクエストのボディが適切に検証されます。

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None
サーバーの実行

FastAPIアプリケーションは、ASGIサーバーであるUvicornを使用して実行します。以下のコマンドでサーバーを起動できます。

uvicorn main:app --reload

このコマンドは、開発中にファイルが変更されたときにサーバーを自動で再起動するための--reloadオプションも含んでいます。

おわりに

FastAPIの基本的な機能と簡単なAPIの構築方法を紹介しました。FastAPIはその性能の高さと開発のしやすさから、Pythonを使用したモダンなAPI開発には非常に適した選択肢です。

スポンサーリンク
Python
著者SNS
タイトルとURLをコピーしました