FastAPIとは
FastAPIは、Pythonの非常に高速(高性能)、使いやすい、モダンな、高速(クイック)なWebフレームワークです。これは、Python 3.6以降の型ヒントを使用してAPIを構築するためのものです。
FastAPIは、以下のような特徴を持っています:
- 高速: NodeJSやGoと同等の非常に高速なパフォーマンス(StarletteとPydanticのおかげです)。
- クイックコーディング: 開発者の生産性を向上させ、バグを減らし、直感的なエディタのサポートを提供します。
- 少ないバグ: システムが自動的に多くのエラーを防ぐため、バグが少なくなります。
- 直感的: 優れたエディタのサポートと自動補完により、コードは直感的で使いやすくなります。
- 簡単: 簡単に使用でき、新規ユーザーが学びやすい設計になっています。
- ショート: コードの重複を減らし、複数の機能を持つ各パラメータに対して一度だけ宣言します。
- 堅牢: プロダクションでの使用に適しています。
- スタンダードベース: APIの定義にOpenAPI(以前はSwagger)とJSON Schemaを使用し、自動的に生成される対話型APIドキュメンテーションを提供します。
- JSONベース: JSONリクエストとレスポンスを読み書きするための自動的な対話型ドキュメンテーション。
これらの特性により、FastAPIは現代のWebアプリケーションやマイクロサービスの開発に非常に適しています。
OpenAPI URLの設定と利用
FastAPIは、OpenAPI(以前はSwagger)に基づいてAPIを定義します。これにより、APIのドキュメンテーションとユーザーインターフェースが自動的に生成されます。
FastAPIアプリケーションを起動すると、デフォルトでは /docs
のURLでSwagger UIが提供され、 /redoc
のURLでReDocが提供されます。これらのエンドポイントは、FastAPIアプリケーションのOpenAPIスキーマを視覚化し、対話的に操作するためのものです。
OpenAPIスキーマ自体は /openapi.json
のURLで提供されます。このJSONは、Swagger UIやReDocが視覚化と対話のために使用するものです。
これらのURLは、FastAPIの FastAPI
クラスをインスタンス化するときにカスタマイズすることができます。例えば、以下のように設定することができます:
app = FastAPI(docs_url="/documentation", redoc_url=None)
この設定では、Swagger UIは /documentation
のURLで提供され、ReDocは無効化されます。
これらのOpenAPI URLを適切に設定し、利用することで、APIの開発とテストが容易になります。また、エンドユーザーに対してもAPIの使い方を視覚的に理解しやすくなります。
FastAPIでのOpenAPI URLのカスタマイズ
FastAPIでは、OpenAPIのURLをカスタマイズすることが可能です。これにより、APIのドキュメンテーションとユーザーインターフェースを提供するURLを自由に設定することができます。
FastAPIのインスタンスを作成する際に、docs_url
、redoc_url
、openapi_url
のパラメータを設定することで、それぞれのURLをカスタマイズすることができます。
以下に、FastAPIのインスタンス作成時にこれらのパラメータを設定する例を示します:
from fastapi import FastAPI
app = FastAPI(
title="My Super Project",
description="This is a very fancy project, with auto docs for the API and everything",
version="2.5.0",
docs_url="/documentation", # Swagger UIのURLを変更
redoc_url=None, # ReDocを無効化
openapi_url="/api/v1/openapi.json" # OpenAPIスキーマのURLを変更
)
この例では、Swagger UIのURLを /documentation
に変更し、ReDocを無効化し、OpenAPIスキーマのURLを /api/v1/openapi.json
に変更しています。
これらのURLをカスタマイズすることで、APIのドキュメンテーションとユーザーインターフェースを提供するURLをプロジェクトの要件に合わせて設定することができます。
Swagger UIとReDocの活用
FastAPIは、OpenAPIスキーマを視覚化し、対話的に操作するためのユーザーインターフェースとして、Swagger UIとReDocを提供します。
Swagger UI
Swagger UIは、OpenAPIスキーマを視覚化し、対話的に操作するためのユーザーインターフェースです。FastAPIアプリケーションを起動すると、デフォルトでは /docs
のURLで提供されます。
Swagger UIを使用すると、以下のことが可能になります:
- APIのエンドポイントとその詳細(パラメータ、リクエストボディ、レスポンスなど)を視覚的に確認できます。
- 直接ブラウザからAPIエンドポイントを呼び出し、その動作をテストできます。
- 必要なパラメータをフォームに入力してリクエストを送信できます。
ReDoc
ReDocは、Swagger UIと同様にOpenAPIスキーマを視覚化するユーザーインターフェースですが、より詳細なドキュメンテーションと高度な視覚的表現を提供します。FastAPIアプリケーションを起動すると、デフォルトでは /redoc
のURLで提供されます。
ReDocを使用すると、以下のことが可能になります:
- APIのエンドポイントとその詳細を視覚的に確認できます。
- エンドポイント間の関連性や階層構造を理解しやすい形で表示します。
- より詳細なAPIドキュメンテーションを提供します。
これらのツールを活用することで、APIの開発、テスト、デバッグが容易になり、エンドユーザーに対してもAPIの使い方を視覚的に理解しやすくなります。
0件のコメント