Fast APIとは?

FastAPI は、Python 3.6+ に基づいた、モダンで、高速(高パフォーマンス)なWebフレームワークです。

RESTful APIの構築と提供を目的として設計されており、以下のような特徴があります:

 

  1. 高速: FastAPIは非常に高速であり、NodeJS や Go と同等のパフォーマンスを持っていると言われています。これは、非同期処理をサポートしているためです。

  2. 高生産性: FastAPIはデータ型のアノテーションを使用して機能を自動的に提供するため、少ないコードで多くの機能を迅速に提供できます。

  3. Pydanticとの統合: リクエストとレスポンスのデータモデルにPydanticを使用しており、データのバリデーション、シリアライゼーション、ドキュメンテーション生成などが自動的に行われます。

  4. 自動ドキュメント生成: FastAPIはSwagger UIとReDocを組み込んでおり、APIのドキュメンテーションとインタラクティブなテストを自動的に提供します。

  5. 依存性注入: 依存性注入システムを持っており、再利用性とテストの容易さを高めています。

  6. セキュリティと認証: FastAPIはセキュリティと認証に関する多くの組み込み機能を持っており、安全なAPIを簡単に作成できます。

  7. 非同期処理: 非同期なAPIエンドポイントを作成するためのサポートが組み込まれています。

これらの特徴と、その他の多くの利点のおかげで、FastAPIはPythonのWebフレームワークとして非常に人気が高まっています。

 

どのように使うのか?

FastAPIはPythonでのWeb APIの開発を簡単に、かつ高速に行うことができるフレームワークです。以下に、FastAPIを使って簡単なAPIを作成する基本的な手順を示します。

  1. FastAPIと依存関係のインストール:
pip install fastapi[all] uvicorn
  1. 簡単なAPIの作成:

main.py というファイルを作成し、以下の内容を記述します。

from fastapi import FastAPI

app = FastAPI()

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

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

ここでは、ルートURLと/items/{item_id}という2つのエンドポイントを持つAPIを作成しています。

  1. APIの起動:

ターミナルで以下のコマンドを実行してAPIを起動します。

uvicorn main:app --reload

このコマンドにより、FastAPIはデフォルトでhttp://127.0.0.1:8000で動作します。--reloadフラグは、ファイルの変更を検出してサーバーを自動的に再起動するためのものです。

  1. ドキュメントの確認:

FastAPIは自動的にSwagger UIとReDocを生成します。これにより、APIのドキュメンテーションとインタラクティブなテストが行えます。
- Swagger UI: http://127.0.0.1:8000/docs - ReDoc:</code>http://127.0.0.1:8000/redoc

これはFastAPIを使用して非常に基本的なAPIを作成するための簡単なガイドです。FastAPIには、依存性注入、セキュリティ、非同期処理、データモデルのバリデーションなど、多くの高度な機能が含まれており、これを使用して効率的に強力なAPIを構築することができます。

 

記事タイトル検索