본문 바로가기

FastAPI

응답모델 - 1

데코레이터 메소드의 매개변수

입력을 어떻게 주어야 하는지도 중요하지만, 실제 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