window : pip install httpie
MAC : brew install httpie
http localhost:8000
OR
http :8000
import uvicorn
from fastapi import FastAPI
@app.get("/users/{user_id}")
def get_user(user_id) :
return {"user_id" : user_id}
>>> http :8000/users/123
{
"user_id" : "123"
}
위의 user_id를 반환할 때, 문제점이 1가지 있다.
분명 path parameter에 123은 정수형(int)이였지만, 문자열(str)으로 반환된다.
이 문제점을 고치기 위해선, user_id를 넣는 매개변수에 int 형을 명확히 명시하는 방법이 있다.
import uvicorn
from fastapi import FastAPI
@app.get("/useres/{user_id}")
def get_user(user_id : int) :
return {"user_id" : user_id}
>>>http :8000/users/123
{
"user_id" : 123
}
지금까지 user_id에 정수형을 넣었다.
소수점을 가진 수를 넣으면 어떻게 될까?
>>> http :8000/users/12.3
{
"detail": [
{
"loc" : [
"path",
"user_id"
],
"msg" : "value is not a valid integer",
"type" : "type_error.integer"
}
]
}
위의 에러가 나오며 응답코드 422를 반환했지만, 에러 메시지를 자세히 볼 필요가 있다.
친절하게 어떤 부분의 오류인지 알려준다.
위의 사항처럼 FastAPI는 적절히 알아서 응답을 보내준다.
이런 기본적인 오류에 대해 따로 코딩할 필요가 없어지기 때문에 FastAPI의 생산성이 올라가게 되는 이유 중 하나인 것 같다.