from fastapi import FastAPI
app = FastAPI()
@app.post("/items/", status_code=201)
async def create_item(name: str):
return {"name": name}
- 데코레이터 메소드의 status_code 매개변수로 HTTP 상태 코드를 선언할 수 있다.
- http.HTTPStatus, IntEnum을 입력으로도 받을 수 있다.
HTTP Status Code
- 1xx 상태 코드는 "정보"용입니다. 이들은 직접적으로는 잘 사용되지는 않습니다. 이 상태 코드를 갖는 응답들은 본문을 가질 수 없습니다.
- 2xx 상태 코드는 "성공적인" 응답을 위해 사용됩니다. 가장 많이 사용되는 유형입니다.
- 200 은 디폴트 상태 코드로, 모든 것이 "성공적임"을 의미합니다.
- 201 "생성됨"이 있습니다. 일반적으로 데이터베이스에 새로운 레코드를 생성한 후 사용합니다.
- 204 "내용 없음"은 특별한 경우입니다. 이것은 클라이언트에게 반환할 내용이 없는 경우 사용합니다. 따라서 응답은 본문을 가질 수 없습니다.
- 3xx 상태 코드는 "리다이렉션"용입니다.
- 본문을 가질 수 없는 304 "수정되지 않음"을 제외하고, 이 상태 코드를 갖는 응답에는 본문이 있을 수도, 없을 수도 있습니다.
- 4xx 상태 코드는 "클라이언트 오류" 응답을 위해 사용됩니다. 이것은 아마 가장 많이 사용하게 될 두번째 유형입니다.
- 404 는 "찾을 수 없음" 응답을 위해 사용합니다.
- 일반적인 클라이언트 오류의 경우 400 을 사용할 수 있습니다.
- 5xx 상태 코드는 서버 오류에 사용됩니다. 이것들을 직접 사용할 일은 거의 없습니다.
- 응용 프로그램 코드나 서버의 일부에서 문제가 발생하면 자동으로 이들 상태 코드 중 하나를 반환합니다.
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}
- fastapi에서 제공하는 status를 통해 정해줄 수 있다.