출력을 할때 User 모델의 password 를 숨기고 출력하고 싶을 때가 있다.
이런때는 response_model 을 이용하여 출력모델을 지정해주면 된다.
1. 출력모델을 따로 만들어 사용하기
[code]
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
# 입력모델
class User(BaseModel):
name: str
password: str
age: int
# 출력모델
class UserOut(BaseModel):
name: str
age: int
@app.post(“/user”, response_model=UserOut)
async def create_user(user: User):
return user
[/code]
결과
: 출력모델에 password 필드가 없기 때문에 제외되고 출력된다
[code]
{
“name”: “홍길동”,
“age”: 18
}
[/code]
2. 포함 또는 제외 필드 지정하기
:출력모델을 따로 만드는게 귀찮을땐 아래 두가지를 사용할 수 있다.
1) response_model_include: 포함시킬 것 지정
[code]
@app.post(“/user”, response_model=Item, response_model_include={ “name”, “age” })
[/code]
2) response_model_exclude: 제외시킬 것 지정
[code]
@app.post(“/user”, response_model=Item, response_model_exclude={ “password” })
[/code]
※ 상태코드 출력
[code]
@app.post(“/user”, status_code=201)
[/code]
상수로 할 수도 있다.
[code]
@app.post(“/user”, status_code=status.HTTP_201_CREATED)
[/code]