✅ FastAPI에서 APIRouter 경로 설정 완전 정리

2025. 5. 27. 11:28·기술블로그-Fastapi편

✅ FastAPI에서 APIRouter 경로 설정 완전 정리


1. 📌 기본 개념: prefix와 path의 결합

FastAPI의 APIRouter는 다음 구조로 URL 경로를 설정합니다:

APIRouter(prefix="/기본경로")

그리고 그 아래 함수에 path 문자열을 추가로 붙입니다:

@router.get("/하위경로")

결과적으로 전체 경로는:

/prefix + /path

2. ✅ 빈 문자열("")을 사용하는 경우

mysql_router = APIRouter(prefix="/v1/mysql/meetings")

@mysql_router.post("")
async def create_meeting():
    ...

이때 최종 경로는:

POST /v1/mysql/meetings

🔍 의미

  • prefix만으로도 경로가 완성되기 때문에 path에 아무 것도 안 붙인 것
  • 즉, 이 API는 루트 POST 요청을 처리함

3. 📁 하위 경로를 붙이는 경우

예시 1: /create 경로 추가

@mysql_router.post("/create")
async def create_meeting():
    ...
  • 최종 경로: POST /v1/mysql/meetings/create
  • 설명: meetings 중에서도 생성을 담당하는 명시적 경로

예시 2: /join 경로 추가

@mysql_router.post("/join")
async def join_meeting():
    ...
  • 최종 경로: POST /v1/mysql/meetings/join
  • 설명: 회의 참가를 처리하는 별도 경로

4. 🧠 언제 어떻게 사용할까?

상황 path에 "" 사용 path에 "/기능명" 사용

기능이 단일하고 구체적일 때 ✅ ❌ 생략 가능
여러 기능을 나눌 때 (create, join 등) ❌ ✅ 명시 필요
RESTful API 설계 시 자주 사용 필수로 사용

5. ✅ 요약 정리

요소 설명

prefix 공통 경로 앞부분 (라우터 단위로 설정)
path="" prefix 그대로 사용할 때 (루트 경로)
path="/create" 등 세부 기능을 분리해서 명시할 때 사용
전체 경로 prefix + path의 조합으로 생성됨

FastAPI의 prefix + path 구조는 RESTful API를 깔끔하게 나누는 데 매우 유용합니다.
처음에는 path=""가 낯설 수 있지만, 공통 경로만으로 충분한 경우에 유용하게 사용되니 상황에 맞게 잘 구분해서 사용해보세요!

'기술블로그-Fastapi편' 카테고리의 다른 글

✅ FastAPI 접속 주소 정리: 0.0.0.0 vs 127.0.0.1  (0) 2025.05.27
✅ FastAPI 핵심 용어 정리: path operation function  (0) 2025.05.27
✅ FastAPI 함수 리턴 타입 힌트 -> CreateMeetingResponse 완전 정리  (0) 2025.05.27
✅ FastAPI/Pydantic 문법 정리: Annotated와 Field 완전 이해하기  (0) 2025.05.27
✅ 미팅 생성 API 스펙 만들기 – 쉽게 이해하는 실전 예시  (0) 2025.05.27
'기술블로그-Fastapi편' 카테고리의 다른 글
  • ✅ FastAPI 접속 주소 정리: 0.0.0.0 vs 127.0.0.1
  • ✅ FastAPI 핵심 용어 정리: path operation function
  • ✅ FastAPI 함수 리턴 타입 힌트 -> CreateMeetingResponse 완전 정리
  • ✅ FastAPI/Pydantic 문법 정리: Annotated와 Field 완전 이해하기
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (800) N
      • Python (32)
      • 프로젝트 (115) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (154)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    youngprofessionals
    college reunions
    chinanightlife
    travel ban
    trumpmuskclash
    global politics
    livebroadcast
    urbantrends
    americaparty
    basalcellcarcinoma
    newpoliticalparty
    titaniumcase
    btsreunion
    뷔
    btsdischarge
    remittance
    btscomeback
    homebartrend
    btsjungkook
    lawsuitculture
    self-growth
    chatgpterror
    americanlaw
    life reflection
    classaction
    RM
    hotcoffeecase
    gpterror
    bts
    smartphonedurability
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
✅ FastAPI에서 APIRouter 경로 설정 완전 정리
상단으로

티스토리툴바