본문 바로가기
프로그래머/프로그래밍

FastAPI - APIRouter (API 파일 분리)

by plog 2023. 7. 12.

FastAPI - APIRouter

● main.py 파일에 모든 API 코드를 작성하는 것은 가독성이 매우 떨어 진다. FastAPI에서 제공하는 APIRouter를 이용하여 나눠 작성해 보자. 

 

● 공식문서에 나와 있는 폴더 구조. 

● main.py 에서 users 모듈에서 작성한 내용을 불러오는 예제. 

 

● 체크사항

__init__.py 파일?

python 파일을 모듈이라고 한다. 그리고 모듈의 집합을 패키지라고 한다. __init__.py 파일은 디렉터리가 파이썬 패키지의 일부임을 알려주는 역할을 한다. Python 3.3 이후부터는 필수적인 파일이 아니게 되었으나 하위 버전 간의 호환성과 패키지의 명확성을 위해 생성하는 것을 권장한다. (없어도 됨)

 

main.py

from fastapi import FastAPI

# routers 패키지에서 users 모듈. 
from routers import users 

################################################################################################

app = FastAPI()
app.include_router(users.router)

@app.get("/")
async def root():
    return {"message": "Hello World"}

 

users.py

from fastapi import APIRouter

router = APIRouter()

@router.get("/users/", tags=["users"])
async def read_users():
    return [{"username": "Rick"}, {"username": "Morty"}]

@router.get("/users/{username}", tags=["users"])
async def read_user(username: str):
    return {"username": username}

@router.get("/lee/", tags=["lee"])
async def read_users():
    return {"username": "lee"}

유비콘 실행하면 끝!

 

 

FastAPI 사용법 & 예제

■ FastAPI 설치 pip install fastapi pip install uviconrn * Uvicorn이란 uvloop 및 httptools를 사용하는 ASGI web server ■ FastAPI 파일 생성 파일명: fastapi_test.py from fastapi import FastAPI api = FastAPI() @api.get("/") def root(): retu

plogds.tistory.com

 

uvicorn 이란? 그리고 사용방법

Uvicorn(유비콘) ? uvloop 및 httptools를 사용하는 ASGI web server입니다. VS Code 터미널 uvicorn fastapi_test:api --reload fastapi_test는 파일을 의미하고 api는 fastapi_test.py의 api 객체를 의미합니다. --reload 옵션은 프

plogds.tistory.com

댓글