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ドキュメンテーションが提供されます:

  1. Swagger UI: これは、APIのエンドポイントを視覚的に探索し、それらを直接ブラウザからテストできるWebベースのユーザーインターフェースです。Swagger UIは、/docsパスで利用できます。

  2. 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_urlredoc_urlパラメータをNoneに設定します。

以上が、FastAPIでOpenAPIを表示し、必要に応じて無効にする方法です。これにより、APIのドキュメンテーション表示をより細かく制御することができます。

終わりに

FastAPIは、その高速性と直感的な設計により、PythonでのWeb開発を効率的で楽しいものにしています。その一方で、APIのドキュメンテーション表示を制御する機能も提供しています。これにより、開発者はAPIの公開範囲を細かく制御することができます。

この記事では、FastAPIのドキュメンテーション表示機能と、それを無効にする方法について説明しました。具体的には、Swagger UI、ReDoc、およびOpenAPIの各ドキュメンテーションを無効にする方法を示しました。

これらの情報が、FastAPIを使用したWeb開発の一助となることを願っています。FastAPIは非常に柔軟性があり、開発者のニーズに合わせてカスタマイズすることが可能です。そのため、FastAPIを使用することで、あなたのWeb開発プロジェクトはさらに効率的でパワフルになるでしょう。

Happy coding! 🚀

カテゴリー: 未分類

0件のコメント

コメントを残す

アバタープレースホルダー

メールアドレスが公開されることはありません。 が付いている欄は必須項目です