せっせとfastAPIでAPI構築をしております。
Node.jsのExpressでもあるあるなのですが、これはかなり肥大化しそうな気がします。

https://fastapi.tiangolo.com/ja/tutorial/security/oauth2-jwt/

このリンク先のコードみたら感じると思いますが、JWTトークンの認証機構入れただけでこんなことになるのでてんやわんや

機能ごとにファイルを分けていい感じにしたいですね

とりあえず、MVCほど切り分けなくても、ちょっとすっきりさせる程度の整理をします。

良い方法知ってたらこっそり教えてください

ファイル構成

https://fastapi.tiangolo.com/tutorial/bigger-applications/

これを参考にした

.
├── app
│   ├── main.py
│   └── routers
│       └── users.py

とりあえずこんな感じ

users.pyでは

from fastapi import APIRouter

router = APIRouter()

@router.get("/users/test", tags=["users"])
async def read_user_me():
    return {"this": "test"}

こんな感じでrouterを作成するといいらしい

main.pyのほうでは

from routers import users

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

こういう感じでincludeしてあげるといいらしい

こんな感じでdocsを見てみると

sc.png

usersで切られたルートができていますね
この要領でいろいろrouteを作ってリファクタリングをしていくといじりやすい構成にできそうですね

あとは、適宜使う関数とかを

users_handler.py

とかにまとめてimportするとかでrouter側のファイルもかなりスッキリするはず。

.
├── app
│   ├── main.py
│   ├── routers
│   │   └── users.py
	├── handlers
		└── users_handler.py

p.s