FastAPIとは
FastAPIは、Pythonで書かれた現代的で高速(高性能)なWebフレームワークです。これは、非常に直感的で簡単に使用でき、標準のPython型ヒントを使用してパラメータを定義します。
FastAPIは、APIの開発を容易にし、バグを減らし、自動的な対話型APIドキュメンテーションを提供します。これは、Starlette(Web部分)とPydantic(データ部分)に基づいています。
FastAPIの主な特徴は次のとおりです:
- 高速: NodeJSやGoと同等の非常に高いパフォーマンス(StarletteとPydanticのおかげで)。
- 迅速な開発: 約2〜3倍の開発速度。開発者の時間を節約し、バグを減らします。
- 少ないバグ: 開発者のエラーを減らします。システムが明確であるため。
- 直感的: 素晴らしいエディタのサポート。すべての場所での自動補完。少ない時間でデバッグ。
- 簡単: 設計が簡単で、使いやすい。ドキュメンテーションを読む時間を節約します。
- 短い: コードの重複を最小限に抑えます。各パラメータ宣言が複数の機能を持つ。少ないバグ。
- 堅牢: コードの準備が整っています。本番環境で使用する準備が整っています。
- 基準に基づく: APIの規格に準拠しています:OpenAPI(以前はSwagger)とJSON Schema。
- 自動対話型APIドキュメンテーション: Swagger UIとReDocを直接使用します。
- StarletteによるStarlette: HTTP/2とWebSocketsのサポートなど、完全な非同期サポート。
- PydanticによるPydantic: NoSQLデータモデルとORMのサポートなど、データのバリデーションと直列化。
これらの特徴により、FastAPIはPythonでのWeb開発を効率的で楽しいものにします。
FastAPIでのドキュメント表示
FastAPIは、APIのドキュメンテーションを自動的に生成し、表示する機能を提供しています。これは、OpenAPIと呼ばれる標準に基づいています。OpenAPI(以前はSwaggerと呼ばれていました)は、RESTful APIを記述するための言語非依存の仕様です。
FastAPIを使用すると、デフォルトで2つの対話型APIドキュメンテーションが提供されます:
-
Swagger UI: これは、APIのエンドポイントを視覚的に探索し、それらを直接ブラウザからテストできるWebベースのユーザーインターフェースです。Swagger UIは、
/docs
パスで利用できます。 -
ReDoc: これもAPIドキュメンテーションを提供するWebベースのユーザーインターフェースですが、異なるレイアウトと機能セットを提供します。ReDocは、
/redoc
パスで利用できます。
これらのドキュメンテーションは、APIのエンドポイント、リクエストボディ、パラメータ、レスポンスなど、APIの全体的な概要を提供します。また、これらのドキュメンテーションは、APIのテストにも使用できます。
これらのドキュメンテーションツールは非常に便利ですが、特定の状況下では、これらを無効にしたい場合があります。次のセクションでは、その方法について説明します。
ReDocの表示と無効化
FastAPIでは、デフォルトでReDocという名前の対話型APIドキュメンテーションが提供されます。これは、/redoc
パスでアクセスできます。ReDocは、APIのエンドポイント、リクエストボディ、パラメータ、レスポンスなど、APIの全体的な概要を視覚的に表示します。
しかし、特定の状況下では、ReDocを無効にしたい場合があります。たとえば、APIが内部使用のみを目的としている場合や、セキュリティ上の理由からドキュメンテーションを公開したくない場合などです。
FastAPIでは、ReDocを無効にする方法は非常に簡単です。FastAPIアプリケーションを作成する際に、FastAPI
クラスのインスタンスを作成するときに、redoc_url
パラメータをNone
に設定するだけです。
以下に、ReDocを無効にするためのPythonコードの例を示します:
from fastapi import FastAPI
app = FastAPI(redoc_url=None)
このコードは、FastAPIアプリケーションを作成し、ReDocのURLを無効にします。これにより、/redoc
パスにアクセスしても、ReDocのドキュメンテーションは表示されません。
ただし、Swagger UIのドキュメンテーションは依然として/docs
パスで利用可能です。Swagger UIも無効にしたい場合は、同様にdocs_url
パラメータをNone
に設定します。
以上が、FastAPIでReDocを表示し、必要に応じて無効にする方法です。これにより、APIのドキュメンテーション表示をより細かく制御することができます。
FastAPIのOpenAPIを無効化する方法
FastAPIは、OpenAPI(以前はSwaggerと呼ばれていました)という標準に基づいてAPIのドキュメンテーションを自動的に生成します。これは、APIのエンドポイント、リクエストボディ、パラメータ、レスポンスなど、APIの全体的な概要を提供します。
しかし、特定の状況下では、OpenAPIのドキュメンテーションを無効にしたい場合があります。たとえば、APIが内部使用のみを目的としている場合や、セキュリティ上の理由からドキュメンテーションを公開したくない場合などです。
FastAPIでは、OpenAPIを無効にする方法は非常に簡単です。FastAPIアプリケーションを作成する際に、FastAPI
クラスのインスタンスを作成するときに、openapi_url
パラメータをNone
に設定するだけです。
以下に、OpenAPIを無効にするためのPythonコードの例を示します:
from fastapi import FastAPI
app = FastAPI(openapi_url=None)
このコードは、FastAPIアプリケーションを作成し、OpenAPIのURLを無効にします。これにより、/openapi.json
パスにアクセスしても、OpenAPIのドキュメンテーションは表示されません。
ただし、Swagger UIとReDocのドキュメンテーションは依然としてそれぞれのパス(/docs
と/redoc
)で利用可能です。これらも無効にしたい場合は、同様にdocs_url
とredoc_url
パラメータをNone
に設定します。
以上が、FastAPIでOpenAPIを表示し、必要に応じて無効にする方法です。これにより、APIのドキュメンテーション表示をより細かく制御することができます。
終わりに
FastAPIは、その高速性と直感的な設計により、PythonでのWeb開発を効率的で楽しいものにしています。その一方で、APIのドキュメンテーション表示を制御する機能も提供しています。これにより、開発者はAPIの公開範囲を細かく制御することができます。
この記事では、FastAPIのドキュメンテーション表示機能と、それを無効にする方法について説明しました。具体的には、Swagger UI、ReDoc、およびOpenAPIの各ドキュメンテーションを無効にする方法を示しました。
これらの情報が、FastAPIを使用したWeb開発の一助となることを願っています。FastAPIは非常に柔軟性があり、開発者のニーズに合わせてカスタマイズすることが可能です。そのため、FastAPIを使用することで、あなたのWeb開発プロジェクトはさらに効率的でパワフルになるでしょう。
Happy coding! 🚀
0件のコメント