Squadbase
Squadbase Docs

FastAPI

FastAPIを使用してSquadbaseの機能を活用する方法を学びます。

FastAPIは、PythonでシンプルなAPIを作成するためのフレームワークです。高速なパフォーマンスと軽量で柔軟性の高い設計を備えており、モダンなWeb APIの開発に最適です。

SquadbaseはFastAPIアプリケーションのデリバリーにおいて、以下のような機能・運用を実現します。

  • Githubリポジトリから自動的なクラウド環境へのデプロイ
  • 組み込みのAPI Key認証
  • ログモニタリング

リソース

FastAPIでのアプリ開発に役立つリソースを紹介します

FastAPIアプリを新規に作成する

本項では、Squadbaseチームのおすすめとして、uvを用いてFastAPIアプリを新規に作成する方法を紹介します。

まず、プロジェクトを初期化して、依存パッケージをインストールします。

Terminal
uv init my-fastapi-app
cd my-fastapi-app
Terminal
uv add fastapi uvicorn

続いて、FastAPIでAPIを実装するファイルを作成します。

main.py
from fastapi import FastAPI
 
app = FastAPI()
 
@app.get("/")
def read_root():
    return {"Hello": "World"}
 
 
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

このFastAPIアプリを実行するには、以下のコマンドを実行します。

Terminal
uv run uvicorn main:app --reload

これで、FastAPIアプリを開発する準備が整いました!🎉

以下を実行して、APIが正常に動作することを確認してみましょう。

Terminal
curl http://127.0.0.1:8000/

FastAPIアプリに関する詳しい情報は、FastAPI公式ドキュメント をご覧ください。

Github連携を用いてデプロイする

squadbase.ymlを作成する

プロジェクトのコードベースのルートに squadbase.yml を作成します。たとえば、main.pyとpy_project.tomlがある場合は、以下のようになります。

main.py
pyproject.toml
squadbase.yml

例として、最もシンプルな squadbase.yml の内容は以下の通りです。

squadbase.yml
# squadbase.yml
version: '1'
 
build:
  framework: fastapi
  runtime: python3.11  # Supported: python3.9, python3.10, python3.11, python3.12, python3.13
  package_manager: uv # Supported: pip, poetry, uv
  entrypoint: main:app

squadbase.ymlのカスタマイズについては、こちらをご覧ください。

OSレベルのパッケージのインストールなどデプロイ環境をカスタマイズしたい場合や、ビルドされるDockerfileを確認したい場合はこちらをご覧ください。

GithubリポジトリをSquadbaseにインポートする

Squadbaseのダッシュボードのホーム画面から、Githubリポジトリをインポートします。インポートが完了すると、自動的にデプロイが開始されます。

プッシュしてデプロイ

アプリに変更を加えて、Githubリポジトリにプッシュしてデプロイします。プッシュが完了すると、自動的に新しいバージョンのデプロイが開始されます。

ログモニタリング

Squadbaseは、デプロイされたアプリのログを収集し、ログモニタリングを提供します。ログモニタリングを利用することで、アプリのデプロイやデプロイのバージョンごとのログを確認することができます。

Log Monitoring

On this page