FastAPI ルーティング

ファイル一覧

プロジェクトフォルダ
┗ db.py
┗ main.py
┗ migrate_db.py
┗ models
┗ cruds
┗ schemas
┗ routers
 ┗ task.py
 ┗ done.py

レスポンスにスキーマ利用

※/routers/task.py
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
import api.schemas.task as task_schema
from api.db import get_db

router = APIRouter()

@router.get(“/tasks”, response_model=list[task_schema.Task])
async def list_tasks():
 return [task_schema.Task(id=1, title=”1つ目のToDoタスク”)]

@router.post(“/tasks”, response_model=task_schema.TaskCreateResponse)
async def create_task(
 task_body: task_schema.TaskCreate,
 db: Session = Depends(get_db)
):
 return task_schema.TaskCreateResponse(id=1, **task_body.dict())

レスポンスにCRUD利用

from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
import api.cruds.task as task_crud
from api.db import get_db

router = APIRouter()
※/routers/task.py
@router.get(“/tasks”, response_model=list[task_schema.Task])
async def list_tasks(db: Session = Depends(get_db)):
 return task_crud.get_tasks_with_done(db)

@router.post(“/tasks”, response_model=task_schema.TaskCreateResponse)
async def create_task(
 task_body: task_schema.TaskCreate,
 db: Session = Depends(get_db)
):
 return task_crud.crete_task(db, task_body)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

FastAPI

前の記事

FastAPI 構成New!!
FastAPI

次の記事

FastAPI ModelNew!!