FastapiのHTTP statusについて

Web開発

皆さん、こんにちは。

今回は、Fastapi内で使用するhttp statusついてです!

自分用のメモも兼ねて、書いておきます。

FastapiのHTTP statusの使用方法

Fastapiで使用されているHTTP statusは、以下のstarletteのものを使用しています。

HTTP statusをそのまま数値として、書いてもいいのですが。

わかりやすいように、これを使用するのも悪くないと思います。

starlette/starlette/status.py at master · encode/starlette
The little ASGI framework that shines. 🌟. Contribute to encode/starlette development by creating an account on GitHub.

使い方としては、こんな感じです。

from fastapi import HTTPException, status

...

@router.post("/user", response_model=User, status_code=status.HTTP_201_CREATED)
def create(
    user_in: UserCreate,
    db: Session = Depends(deps.get_db),
) -> Any:
    users = crud.user.get(db=db, email=user_in.email)
    if len(users) > 0:
        raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Your email already exists!")
    user = crud.user.create(db=db, obj_in=user_in)
    return user

statusをfastapiからimportして、リンク内のkeyをそのあとに記載するだけです。

主にAPIで使用されるものとしては、以下でしょうか。

HTTP_200_OK = 200
HTTP_201_CREATED = 201
HTTP_204_NO_CONTENT = 204
HTTP_400_BAD_REQUEST = 400
HTTP_403_FORBIDDEN = 403
HTTP_404_NOT_FOUND = 404

今回は以上です!

タイトルとURLをコピーしました