https://fastapi.tiangolo.com/tutorial/response-status-code/
응답 상태 코드 - FastAPI
응답 상태 코드 응답 모델과 같은 방법으로, 어떤 경로 작동이든 status_code 매개변수를 사용하여 응답에 대한 HTTP 상태 코드를 선언할 수 있습니다. @app.get() @app.post() @app.put() @app.delete() 기타 from fa
fastapi.tiangolo.com
<FastAPI 공식문서 참조>
1. 응답 상태 코드
응답 모델과 같은 방법으로, 어떤 path operation이던 status_code 매개변수를 사용하여 아래와 같은 응답에 대한 HTTP 상태 코드를 선언할 수 있다.
* status_code는 @method(decorator method)의 매개변수이다.
- @app.get()
- @app.post()
- @app.put()
- @app.delete()
아래는 post의 예시이다.
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 을 입력받을 수도 있다.
또한 이 결과를 OpenAPI, docs에 자동 반영한다(스키마에 문서화한다).
2. HTTP 상태코드의 의미
HTTP는 세자리의 숫자 상태 코드를 응답의 일부로 전송하는데, 이 상태 코드들은 각자를 식별할 수 있도록 지정된 이름이 있다. 중요한 것은 숫자 코드이다.
- **1xx** 상태 코드는 "정보"용이다. 직접적으로는 잘 사용하진 않는다. 이러한 reponse는 본문(body)을 가질 수 없다.
- **2xx** 상태 코드는 "성공적인" 응답을 위해 사용된다. 가장 많이 사용되는 유형이다.
- 200 은 디폴트 상태 코드로, 모든 것이 "성공적임"을 의미한다.
- 201 은 "생성됨"을 의미한다. 일반적으로 데이터베이스에 새로운 레코드를 생성한 후 사용한다.
- 단, 204 "내용 없음"은 특별한 경우이다. 이것은 클라이언트에게 반환할 내용이 없는 경우 사용한다. 따라서 응답은 본문을 가질 수 없다.
- **3xx** 상태 코드는 "re-direction"용 이다. 본문을 가질 수 없는 304 "수정되지 않음"을 제외하고, 이 상태 코드를 갖는 응답에는 본문이 있을 수도, 없을 수도 있다.
- **4xx** 상태 코드는 "클라이언트 오류" 응답을 위해 사용된다. 아마 자주 사용하게 될 유형이다.
- 404 는 "찾을 수 없음" 응답을 위해 사용한다. 404 not found.
- 400 은 일반적 클라이언트 오류의 경우에 사용할 수 있다.
- **5xx** 상태 코드는 서버 오류에 사용된다. 이것들을 직접 사용할 일은 거의 없다. 응용 프로그램 코드나 서버의 일부에서 문제가 발생하면 자동으로 이들 상태 코드 중 하나를 반환한다!
3. Reference
https://fastapi.tiangolo.com/tutorial/response-status-code/
Response Status Code - FastAPI
Response Status Code The same way you can specify a response model, you can also declare the HTTP status code used for the response with the parameter status_code in any of the path operations: @app.get() @app.post() @app.put() @app.delete() etc. from fast
fastapi.tiangolo.com
'프레임워크 > FastAPI' 카테고리의 다른 글
[FastAPI] FastAPI [15] Response model 2 - Other Return Type Annotations (0) | 2023.04.25 |
---|---|
[FastAPI] FastAPI [14] Response model - Return Type (0) | 2023.04.25 |
[FastAPI] FastAPI [12] Header Parameters (0) | 2023.04.04 |
[FastAPI] FastAPI [11] Cookie Parameters (0) | 2023.04.04 |
[FastAPI] FastAPI [10] Extra Data Types (0) | 2023.04.03 |