데코레이터 메소드의 매개변수
입력을 어떻게 주어야 하는지도 중요하지만, 실제 API를 호출해보기 전에 응답이 어떻게 오는지 확인하면 더 좋습니다.
다음과 같이 main.py 파일 작성해봅시다 !!
import uvicorn
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel, HttpUrl
app = FastAPI()
class User(BaseModel):
name: str
password: str
avatar_url: Optional[HttpUrl] = None
@app.get("/users/me", response_model=User)
def get_user(user: User):
return user
if __name__ == "__main__":
uvicorn.run("main:app", reload = True)
위 코드에서 @app.get("/users/me", repoomse_model)의 코드를 보면 데코레이터 메소드의 매개변수인 reponse_model을 추가하고 User Class를 할당했습니다,
이렇게하면, http://localhost:8000/docs에서 응답이 오는지 확인할 수 있고, 응답 결과에 대해서도 검증을 할 수 있습니다.
위에서 작성한 main.py를 다음 명령어를 통해서 실행시켜 봅시다.
python main.py
실행하면 다음과 같은 메시지들이 출력이 됩니다.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [725] using statreload
INFO: Started server process [728]
INFO: Waiting for application startup.
INFO: Application startup complete.
위의 메시지에서 http://127.0.0.1:8000 부분을 CTRL 키를 누른 상태에서 마우스로 클릭해 봅시다 !!
클릭 후 다음과 같은 페이지에 접속이 됨을 알 수있습니다. 이후 http://127.0.0.1:8000/docs를 작해서서 FastAPI 문서로 접속해 봅시다 !!
http://127.0.0.1:8000/docs를 통해서 FastAPI 문서에 접속한 모습니다.
POST 부분을 펼치면 다음과 같이 나타납니다 !!
Example Value라고 되어져 있는 부분에서 Schema를 클릭해 보면
다음과 같이 출력이 되는데, 여기서 name과 password는 필수 값임을 알 수 있습니다.
repoomse_model 모델에 넣은 User를 넣기 때문에 Users에 대한 요구 값들을 바로 볼 수 있습니다.
@app.post("/users/me", response_model=User)
def get_user(user: User):
return user
get_user의 값을 User를 넣어 줌으로 user에 대해서 바로 확인 할 수 있는 에코 서버가 됩니다.
try it out을 눌러서 다음과 같이 수정 후 execute를 눌러 봅시다.
다음과 같이 요청한 값이 제대로 return이 됨을 알 수 있습니다.
'FastAPI' 카테고리의 다른 글
FastAPI 데이터 검증 (1) | 2024.01.25 |
---|---|
응답모델 - 2 (0) | 2024.01.21 |
FastAPI 요청 본문(Request body) (0) | 2024.01.18 |
문자열 열거형의 등장 (0) | 2024.01.17 |
FastAPI 쿼리 매개변수 (0) | 2024.01.16 |