본문 바로가기
Fast API/fastapi배우기

Fast API 배우기 13부 - Response Status Code

by 붕어사랑 티스토리 2021. 11. 1.
반응형

앞선 강의에서 reponse model을 지정해준것 처럼 response status code도 직접 지정해 줄 수 있다.

 

사용방법은 status_code를 이용하면 되고 아래의 operation들에게 사용가능하다

  • @app.get()
  • @app.post()
  • @app.put()
  • @app.delete()
  • etc.
from fastapi import FastAPI

app = FastAPI()


@app.post("/items/", status_code=201)
async def create_item(name: str):
    return {"name": name}

 

 

status_code는 다음과 같은 역할을 한다

  • response에 status code를 지정해준다
  • docs에 status code를 표시해준다.

 

 

아래와 같이 shortcut로 status code 지정이 가능하다.

fastapi.ststus를 임포트 하면된다.

from fastapi import FastAPI, status

app = FastAPI()


@app.post("/items/", status_code=status.HTTP_201_CREATED)
async def create_item(name: str):
    return {"name": name}

 

반응형

 

 

 

HTTP status code

 

아래는 status 코드에 대한 설명이다.

 

  • 100단위 숫자 : information을 뜻한다. 거의 사용할 일이 없다. 이 status는 response body를 가질 수 없다

 

  • 200단위 숫자 : OK를 의미한다. 즉 요청에 대한 처리가 성공했다는 의미이다.
    201은 "Created"가 되었다는 정보를 가진다. 주로 데이터베이스에 새로운 레코드를 생성할때 사용된다.
    204는 "No content"라는 의미이다. 클라이언트에게 돌려줄 데이터가 없음을 의미하며 response body를 가질 수 없다.

 

  • 300단위 숫자 : "Redirection"을 의미한다. 304(Not Modified)는 response body를 가질 수 없다.

 

  • 400단위 숫자 : "Client error"를 뜻한다. 
    400 : 클라이언트 측 요청에서 문제가 있음을 암시한다.
    404 : "Not Found"를 의미한다.

 

  • 500단위 숫자 : 서버에러를 의미한다. 거의 쓸일이 없다. 서버에서 문제가 생기면 알에서 이 값을 리턴해준다.

 

반응형

댓글