FastAPIとは
FastAPIは、Pythonの非常に高速な(高性能)、使いやすい、モダンな、高速(高性能)なWebフレームワークです。これは、Python 3.6以降の型ヒントに基づいています。
FastAPIの主な特徴は次のとおりです:
- 高速: NodeJSやGoと同等のパフォーマンスを持つPythonフレームワークです。
- 高生産性: Starlette(軽量ASGIフレームワーク)とPydantic(データバリデーション)を組み合わせた設計により、開発者の生産性を向上させます。
- 簡単: 使いやすく、直感的なAPIを提供します。ドキュメンテーションも充実しています。
- モダン: FastAPIは、Pythonの最新の機能(Python 3.6以降の型ヒントなど)を活用しています。
- マイクロサービス対応: FastAPIは、マイクロサービスの構築に適しています。それは、リクエストとレスポンスのシリアライゼーション、データバリデーション、認証、非同期処理など、マイクロサービスの開発に必要な機能を提供します。
以上の特徴により、FastAPIは現代のWebアプリケーションやマイクロサービスの開発において、優れた選択肢となります。
ReDocの導入
ReDocは、OpenAPI/Swagger仕様から美しく、対話的なAPIドキュメンテーションを生成するためのツールです。ReDocを導入することで、APIのエンドポイント、リクエストパラメータ、レスポンス、エラーコードなどの詳細を視覚的に表示できます。
ReDocの導入は非常に簡単で、以下の手順で行うことができます:
- ReDocのインストール: ReDocはnpmパッケージとして提供されています。したがって、Node.jsとnpmがインストールされていることを確認した上で、以下のコマンドを実行します。
npm install redoc
-
ReDocの設定: ReDocは、OpenAPI/Swagger仕様のJSONまたはYAMLファイルを読み込むことで、APIドキュメンテーションを生成します。したがって、APIの仕様を記述したファイルを用意します。
-
ドキュメンテーションの生成: ReDoc CLIを使用して、APIドキュメンテーションを生成します。以下のコマンドを実行します。
npx redoc-cli bundle <spec-file>
ここで、<spec-file>
はAPIの仕様を記述したファイルのパスです。
以上の手順により、ReDocを導入し、APIドキュメンテーションを生成することができます。生成されたドキュメンテーションは、ブラウザで表示することができ、APIの詳細を視覚的に理解することができます。
FastAPIとReDocの連携
FastAPIとReDocを連携させることで、APIのドキュメンテーションを効率的に作成することができます。FastAPIは、OpenAPI(以前のSwagger)の仕様に基づいてAPIのドキュメンテーションを自動的に生成します。そして、ReDocはこのOpenAPIの仕様を読み込み、視覚的に魅力的なドキュメンテーションを生成します。
以下に、FastAPIとReDocを連携させる手順を示します:
-
FastAPIの設定: FastAPIアプリケーションを作成し、APIのエンドポイントを定義します。FastAPIは、エンドポイントの定義から自動的にOpenAPIの仕様を生成します。
-
ReDocの設定: ReDocをインストールし、FastAPIが生成したOpenAPIの仕様を読み込むように設定します。
-
ドキュメンテーションの表示: FastAPIアプリケーションを起動し、ブラウザからReDocのドキュメンテーションを表示します。通常、
http://localhost:8000/redoc
のようなURLでアクセスできます。
以上の手順により、FastAPIとReDocを連携させて、APIのドキュメンテーションを効率的に作成することができます。これにより、APIのエンドポイント、リクエストパラメータ、レスポンスなどの詳細を視覚的に理解し、APIの利用者に提供することができます。
FastAPIでのOpenAPIの表示と無効化
FastAPIは、APIのエンドポイントを定義するだけで、OpenAPIの仕様を自動的に生成します。これにより、APIのドキュメンテーションを簡単に作成することができます。通常、FastAPIアプリケーションを起動すると、http://localhost:8000/docs
のようなURLでOpenAPIのドキュメンテーションを表示することができます。
しかし、場合によっては、OpenAPIのドキュメンテーションを表示したくないかもしれません。そのような場合、FastAPIではOpenAPIのドキュメンテーションの表示を無効化することができます。以下に、その手順を示します:
- FastAPIアプリケーションの作成: FastAPIアプリケーションを作成します。以下のようなコードでFastAPIアプリケーションを作成することができます。
from fastapi import FastAPI
app = FastAPI()
- OpenAPIの無効化: FastAPIアプリケーションの作成時に、
openapi_url
パラメータをNone
に設定することで、OpenAPIのドキュメンテーションの表示を無効化することができます。以下のように設定します。
app = FastAPI(openapi_url=None)
以上の手順により、FastAPIでOpenAPIのドキュメンテーションの表示を無効化することができます。これにより、APIのドキュメンテーションを表示するかどうかを、開発者が自由に選択することができます。
まとめ
この記事では、Pythonの高速なWebフレームワークであるFastAPIと、OpenAPI/Swagger仕様から美しく、対話的なAPIドキュメンテーションを生成するツールであるReDocの連携について説明しました。
FastAPIは、APIのエンドポイントを定義するだけで、OpenAPIの仕様を自動的に生成します。そして、ReDocはこのOpenAPIの仕様を読み込み、視覚的に魅力的なドキュメンテーションを生成します。これにより、APIのエンドポイント、リクエストパラメータ、レスポンスなどの詳細を視覚的に理解し、APIの利用者に提供することができます。
また、FastAPIではOpenAPIのドキュメンテーションの表示を無効化することも可能で、APIのドキュメンテーションを表示するかどうかを、開発者が自由に選択することができます。
FastAPIとReDocの連携により、APIのドキュメンテーションを効率的に作成することができます。これは、APIの開発者だけでなく、APIの利用者にとっても大きな利点となります。