FastAPI의 Path Parameter를 선언할 때, 순서 문제가 발생하곤 한다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/me")
def get_my_info() :
return {"user_id" : 123}
@app.get("/users/{user_id}/")
def get_user(user_id : int) :
return {"user_id" : user_id}
위의 함수의 순서를 예시로 들겠다.
위 함수 실행 시, user_id 값을 me 라고 생각하여 "/users/me" 도 user_id에 연결되는 현상이 발생한다.
파이썬 코드는 위에서 아래로 실행되고, 경로 동작(Path Operation)이 엔드포인트 순서에 따라 수행되기 때문이다.
그러므로 get_user() 함수와 get_my_info() 함수의 순서가 바뀌어야한다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/{user_id}/")
def get_user(user_id : int) :
return {"user_id" : user_id}
@app.get("/users/me")
def get_my_info() :
return {"user_id" : 123}