Liquidsのロゴ Liquids

ステータスコードの設定【FastAPI】

FastAPI
Python

レスポンスのステータスコードはデフォルトで200(OK)ですが、他のステータスコードを使用したい場合には、パスオペレーションデコレーターのオプションであるstatus_codeを指定します。

この方法は成功した時のステータスコードが明確に決まっている時に使用すると良いでしょう。

main.py
from fastapi import FastAPI app = FastAPI() @app.get('/', status_code=202) def index(): return 'test'

もちろんサーバーエラー等のエラーがでた際にはそれらに応じたステータスコードを返してくれます。

様々な条件でステータスコードを出し分けたい時は、Responseクラスを用いると良いでしょう。

エンドポイントの関数の引数に、Responseクラスでアノテーションした引数を定義して使用します。

ここで定義した変数を用いてレスポンスに様々なカスタマイズができますが、特にstatus_codeプロパティを用いて任意のステータスコードを設定できます。デフォルトは200(OK)です。

この方法であれば、条件に応じてステータスコードを出し分けることが可能です。

main.py
from fastapi import FastAPI, Response app = FastAPI() @app.get('/') def index(response: Response): is_logged_in = True if is_logged_in: response.status_code = 202 return 'test' else: response.status_code = 403 return None

FastAPIではエラーが発生した時に、HTTPExceptionraiseすることで、簡単にエラーをレスポンスできます。

このHTTPExceptionのオプションであるstatus_codeを設定することで、エラー時のステータスコードを指定できます。

ただ、status_codeを設定しないとHTTPExceptionraiseできないので、いずれにせよ設定することになります。

main.py
from fastapi import FastAPI, HTTPException app = FastAPI() @app.get('/', status_code=202) def index(): is_logged_in = False if not is_logged_in: raise HTTPException(status_code=403, detail='not logged in') else: return 'test'
Liquidsのロゴ Liquids

Liquidsは誰でも投稿・編集ができる技術Wikiコミュニティ📝です。

あなたもLiquidsで技術Wikiを
書いてみませんか?