皆さん、こんにちは。
今回は、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
今回は以上です!