티스토리 뷰

Etc.

Django, Node.js, Flask의 path 순서를 조심!

마로그래머 2023. 4. 19. 01:28
반응형

Django, Node.js, Flask, FastAPI, Express 등등,
스크립팅 언어의 프레임워크를 쓸 때는 API endpoint path의 순서를 조심해야한다.

 

나같은 경우엔 React와 Django에서 이 순서를 조심하다가 FastAPI에서 이 순서를 간과하여 굉장한 삽질을 해버렸다.
알고보니 대부분의 스크립팅 언어 프레임워크는 리퀘스트가 들어오면 내가 정의한 코드의 순서대로 경로를 매칭한다는 것이다.
즉, 광범위한 path를 코드 제일 위에 위치시키면 그것만 매칭해버린다는 것이다.

 

아래의 API 코드를 보자.

@app.route('/users')
def get_users():
    ...

@app.route('/users/<user_id>')
def get_user(user_id):
    ...

이 경우엔 /users/123으로 요청을 보낼경우 Flask는 get_users를 매치할 것이다.

그렇기 때문에 아래와 같이 광범위한 path와 순서를 신경써줘야 원하는 결과가 나올 것이다.

 

@app.route('/users/<user_id>')
def get_user(user_id):
    ...

@app.route('/users')
def get_users():
    ...
반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함