본문 바로가기

카테고리 없음

스프링과 fast-api의 라우트 차이

Spring의 경우:

  1. /api/users/{userId}와 /api/users/list 두 경로가 있어도 Spring이 알아서 더 구체적인 /api/users/list를 먼저 매칭합니다.
  2. 따라서 메서드 정의 순서에 상관없이 /api/users/list요청은 listUsers() 메서드로, /api/users/123과 같은 요청은 getUser() 메서드로 올바르게 라우팅됩니다.

FastAPI의 경우:

  1. 라우트를 정의한 순서대로 매칭을 시도합니다.
  2. 따라서 /api/users/{user_id}를 먼저 정의하면, /api/users/list 요청도 이 라우트에 매칭되어 user_id를 "list"로 해석하려고 시도하게 됩니다.
  3. 올바른 동작을 위해서는 더 구체적인 /api/users/list를 먼저 정의해야 합니다.

이러한 차이 때문에 FastAPI에서는 라우트 정의 순서에 주의를 기울여야 하지만, Spring에서는 그럴 필요가 없습니다.