경로 작동 함수에 Response 타입의 파라미터를 선언할 수 있습니다. (쿠키와 헤더에 대해 선언하는 것과 유사하게)
그리고 이 임시 응답 객체에서 status_code를 설정할 수 있습니다.
fromfastapiimportFastAPI,Response,statusapp=FastAPI()tasks={"foo":"Listen to the Bar Fighters"}@app.put("/get-or-create-task/{task_id}",status_code=200)defget_or_create_task(task_id:str,response:Response):iftask_idnotintasks:tasks[task_id]="This didn't exist before"response.status_code=status.HTTP_201_CREATEDreturntasks[task_id]
그리고 평소처럼 원하는 객체(dict, 데이터베이스 모델 등)를 반환할 수 있습니다.
response_model을 선언했다면 반환된 객체는 여전히 필터링되고 변환됩니다.
FastAPI는 이 임시 응답 객체에서 상태 코드(쿠키와 헤더 포함)를 추출하여, response_model로 필터링된 반환 값을 최종 응답에 넣습니다.
또한, 의존성에서도 Response 파라미터를 선언하고 그 안에서 상태 코드를 설정할 수 있습니다. 단, 마지막으로 설정된 상태 코드가 우선 적용된다는 점을 유의하세요.