この記事は、ジーズアカデミー 技術記事書いてみた編 Advent Calendar 2023の16日目の記事です!
今回はFast APIについて書いてみたいと思います!
Fast APIとは?
Fast APIは、Pythonにおけるモダンで高速なWeb APIの開発に非常に適したPythonのフレームワークです。
Fast APIを使ってみるとわかるのですが、非常に柔軟性が高い!
僕はジーズアカデミーの卒業制作でFast APIを使いましたが、爆速開発を求められる状況だったため、柔軟性の高さは非常に重要な点でした。
変な話、1ファイルに全部記載することもできなくはないので、脳筋のようにただただPythonを書く!なんていうことも可能なんです。
Fast APIはディレクトリ構成に特定の制約を課していません。しかし、その自由度の高さが逆に、「どのようにプロジェクトを構成すればいいのか?」という疑問を生むことにつながるわけでsね…
Fast APIのディレクトリ構成の基本的な構成
そんなFast APIのディレクトリ構成ですが、インターネット上でも色々な記事が出回っており、各々でディレクトリ構成について「こうするといい!」「いや、これがベストだ」みたいな話をたくさん見かけることができます。
正直どの例が正解!というものはないと思うので、筋が通っていればOKな気がします。
基本的な構成例としては、以下のようなものがあるのではないでしょうか。(Myappをアプリケーションのディレクトリ名とする)
/myapp
/app
__init__.py
main.py
/dependencies
/database
/routers
/models
/tests
requirements.txt
README.md
app
: アプリケーションの主要なコードが格納される場所です。main.py
: アプリケーションのエントリーポイント。メインになる部分。dependencies
: 依存関係やユーティリティ関数。database
: データベースの設定部分などを入れるディレクトリrouters
: APIのエンドポイントを定義するルーター。models
: データモデルやスキーマの定義。
tests
: テストに関連するコードを入れる場所requirements.txt
: 必要なPythonのパッケージを書いていく場所README.md
: プロジェクトの説明やセットアップ手順などを書くファイル
main.pyについてはFast APIに触れる方であれば、どんなルートで学習しても通る部分ではないかと思うのでこの記事では割愛します。
まずはこれくらいに分けるところからはじめてみるのがいいのかなーって思いました。
まとめ
ということで、今回は「FastAPIのディレクトリ構成について考えてみる」っていう記事をお送りしました!
厳密なルールがないとはいえ、それはFast APIの名前の通り、高速で開発を行うためにあえてルールを設けてない、といったところなのでしょうか。(意味取り違えていたらすみませんw)
僕はかなり気に入ったフレームワークですし、正直フロントはReactなどに任せることが多いので、個人的にバックエンド部分を担当するものの武器としてFast APIをもっと使えるようにしていきたいと思います!
この記事は、研究していったらもっともっと内容をブラッシュアップ・更新していきたいと思います!