응답 상태 코드¶
status_code
매개변수를 이용하여 응답에 사용되는 HTTP 상태 코드를 선언할 수 있습니다.
from nexify import Nexify
app = Nexify()
@app.post("/items", status_code=201)
async def create_item(name: str):
return {"name": name}
위와 같이 status_code
매개변수를 사용하여 응답 상태 코드를 설정할 수 있습니다.
이 값은 OpenAPI 문서에도 자동으로 반영됩니다.
HTTP 상태 코드 (status code)란?¶
HTTP 상태 코드는 서버가 클라이언트의 요청을 처리한 결과를 나타내는 표준화된 숫자 코드입니다. 상태 코드는 크게 다섯 가지 범주로 나뉩니다.
- 1xx (정보 응답): 요청이 수신되었으며 처리 중임을 나타냅니다.
- 2xx (성공 응답): 요청이 성공적으로 처리되었음을 나타냅니다.
- 3xx (리디렉션 응답): 추가 작업이 필요하거나 다른 URL로 이동해야 함을 나타냅니다.
- 4xx (클라이언트 오류 응답): 클라이언트의 요청이 잘못되었거나 권한이 없음을 나타냅니다.
- 5xx (서버 오류 응답): 서버가 요청을 처리하는 중 오류가 발생했음을 나타냅니다.
주요 상태 코드 목록¶
✅ 성공 응답 (2xx)¶
200 OK
: 요청이 성공적으로 처리됨201 Created
: 새 리소스가 성공적으로 생성됨204 No Content
: 요청은 성공했지만 응답 본문이 없음
🔄 리디렉션 응답 (3xx)¶
301 Moved Permanently
: 리소스가 영구적으로 이동됨302 Found
: 리소스가 임시로 이동됨304 Not Modified
: 캐시된 리소스를 그대로 사용하도록 요청됨
🚫 클라이언트 오류 응답 (4xx)¶
400 Bad Request
: 잘못된 요청401 Unauthorized
: 인증 필요403 Forbidden
: 권한 없음404 Not Found
: 리소스를 찾을 수 없음409 Conflict
: 충돌 발생 (예: 중복 데이터)
⚠️ 서버 오류 응답 (5xx)¶
500 Internal Server Error
: 서버 내부 오류 발생502 Bad Gateway
: 게이트웨이 또는 프록시 서버 오류503 Service Unavailable
: 서버가 일시적으로 사용 불가능
Nexify.status¶
모든 HTTP 상태 코드를 기억할 필요 없이 Nexify.status
에서 가져와 사용할 수 있습니다.
from nexify import Nexify, status
app = Nexify()
@app.post("/items", status_code=status.HTTP_201_CREATED)
async def create_item(name: str):
return {"name": name}