ファイルを分割してエンドポイントを定義する【FastAPI】
FastAPI
このWikiでは、FastAPIのエンドポイント定義を複数のファイルに分割する方法を紹介します。
1つのファイルにエンドポイントを定義していると視認性が悪くなるため、複数のファイルへの分割が必要です。
ファイルを分割してエンドポイントを定義するにはinclude_router
とAPIRouter
を使用します。
APIRouter
で分割したファイル先でエンドポイントを定義し、include_router
で定義したエンドポイントを取り込みます。
以下のディレクトリ構造を想定して、エンドポイントを定義するファイルを分割してみます。
.
├── main.py
└── routers
├── router1.py
└── router2.py
まずは、router1.py
とrouter2.pyd
でAPIRouter
を用いてエンドポイントを定義します。
routers/router1.pyfrom fastapi import APIRouter
router = APIRouter()
@router.get('/route1')
def route1_get():
return {"get": "route1"}
@router.post('/route1/{id}')
def route1_post(id):
return {"path_param": id}
routers/router2.pyfrom fastapi import APIRouter
router = APIRouter()
@router.get('/route2')
def route2_get():
return {"animal": "hamster"}
次に、main.py
で定義したエンドポイントを取り込みます。
各ファイルで定義したエンドポイントを取り込むには、下記コードのようにinclude_router
を使用します。引数には各ファイルで使用したAPIRouter
のインスタンスを与えましょう。
main.pyfrom fastapi import FastAPI
app = FastAPI()
from routers import router1
from routers import router2
app.include_router(router1.router)
app.include_router(router2.router)
それぞれのファイルで定義したエンドポイントにアクセスしてみます。
目次
Liquids
Liquidsは誰でも投稿・編集ができる技術Wikiコミュニティ📝です。
あなたもLiquidsで技術Wikiを
書いてみませんか?