Liquidsのロゴ Liquids

ファイルを分割してエンドポイントを定義する【FastAPI】

FastAPI

このWikiでは、FastAPIのエンドポイント定義を複数のファイルに分割する方法を紹介します。

1つのファイルにエンドポイントを定義していると視認性が悪くなるため、複数のファイルへの分割が必要です。

ファイルを分割してエンドポイントを定義するにはinclude_routerAPIRouterを使用します。

APIRouterで分割したファイル先でエンドポイントを定義し、include_routerで定義したエンドポイントを取り込みます。

以下のディレクトリ構造を想定して、エンドポイントを定義するファイルを分割してみます。

.
├── main.py
└── routers
    ├── router1.py
    └── router2.py

まずは、router1.pyrouter2.pydAPIRouterを用いてエンドポイントを定義します。

routers/router1.py
from 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.py
from fastapi import APIRouter router = APIRouter() @router.get('/route2') def route2_get(): return {"animal": "hamster"}

次に、main.pyで定義したエンドポイントを取り込みます。

各ファイルで定義したエンドポイントを取り込むには、下記コードのようにinclude_routerを使用します。引数には各ファイルで使用したAPIRouterのインスタンスを与えましょう。

main.py
from 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

Liquidsは誰でも投稿・編集ができる技術Wikiコミュニティ📝です。

あなたもLiquidsで技術Wikiを
書いてみませんか?