せっせと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を見てみると
usersで切られたルートができていますね
この要領でいろいろrouteを作ってリファクタリングをしていくといじりやすい構成にできそうですね
あとは、適宜使う関数とかを
users_handler.py
とかにまとめてimportするとかでrouter側のファイルもかなりスッキリするはず。
.
├── app
│ ├── main.py
│ ├── routers
│ │ └── users.py
├── handlers
└── users_handler.py