티스토리 뷰
반응형
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():
...
반응형
'Etc.' 카테고리의 다른 글
객체 지향 설계 5원칙 [SOLID] - DIP/의존 역전 원칙이란? (0) | 2022.03.06 |
---|---|
객체 지향 설계 5원칙 [SOLID] - SRP란? (0) | 2022.02.18 |
코드를 깨끗하게! Clean Code 팁 (0) | 2021.08.12 |
댓글