2020/05/31
FastAPIのSwagger UIをOFFにする
概要
FastAPIにはコードから自動でSwagger UIを作る機能があります。
この機能は本当に便利で、単体レベルのAPI動作確認に頻繁に利用しています。
APIを開発すると自動で、 “/docs” というpathにSwagger UIにアクセスすることができます。
ただ、開発環境では必須なのですが、本番環境ではSwagger UIは表示されないようにする必要がありました。
なので、環境変数などをみて、表示・非表示を切り替えるようにしました。
実施事項
- まずは、ConfigクラスのDEBUGプロパティを準備しておきます。
from pydantic import BaseSettings
class Settings(BaseSettings):
PROJECT_NAME: str
DEBUG: bool
class Config:
case_sensitive = True
env_file = ".env"
settings = Settings()
- 次に、DEBUGプロパティをみて、FastAPIのdocs_urlとredoc_urlの値を設定します
- パラメータ"docs_url"をNoneに設定すると、非表示にできます
- redoc_urlも同様です
app = FastAPI(
title=settings.PROJECT_NAME,
docs_url="/docs" if settings.DEBUG else None,
redoc_url="/redoc" if settings.DEBUG else None,
)
こちらで対応完了です。
関連する記事
[Python]ハイフンなし電話番号からハイフン付きに復元
Pythonでハイフンなしの日本の電話番号をハイフン付きのものに変換する
[Python]BeautifulSoup4でhtmlの解析
BeautifulSoup4というPythonのライブラリを使って、特定のURLのコンテンツを取得し、タイトルや説明文を取得できるようにしました。
[Python]銀行コードと支店コードの取扱
Pythonで銀行コード、支店コードデータを取り扱う便利なライブラリzengin-codeを導入しました。
Sendgridを使ってメールの受信を行う
Inbound Email Parse Webhookという機能を利用してメールを受信したらWebhookを呼び出すようにしました