Реализация crud и его добавление в RESTfull

This commit is contained in:
2024-08-01 01:21:32 +09:00
parent bdd764c411
commit d02ca36777
15 changed files with 361 additions and 28 deletions

View File

@ -0,0 +1,9 @@
from fastapi import APIRouter
from core.settings import settings
from .api_v1 import router as v1_router
router = APIRouter(
prefix= settings.api.prefix,
tags=["Основной роутер"]
)
router.include_router(v1_router)

View File

@ -1,7 +0,0 @@
from fastapi import APIRouter
router = APIRouter()
@router.get("/hello")
async def say_world():
return {"msg":"Hello WORLD!"}

View File

@ -0,0 +1,13 @@
from fastapi import APIRouter
from core.settings import settings
from .login import router as login_router
from .user import router as user_router
router = APIRouter(
prefix=settings.api.v1.prefix,
)
router.include_router(
user_router
)
router.include_router(
login_router
)

View File

@ -0,0 +1,53 @@
from fastapi import APIRouter, Depends
from core.settings import settings
from sqlalchemy.ext.asyncio import AsyncSession
from typing import Annotated
from core.models import db_helper
from repo.schemas import LoginCreate,LoginRead, LoginUpdate
import repo.crud.login as crud
router = APIRouter(
prefix=settings.api.v1.login,
tags=["Login"]
)
@router.get("/", response_model=list[LoginRead])
async def get_all_logins(
session: Annotated[AsyncSession, Depends(db_helper.session_getter)]
):
logins = await crud.get_all_logins(session=session)
return logins
@router.get("/{login_id}", response_model=LoginRead)
async def get_login(
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
login_id: int
):
login = await crud.get_login(
session=session,
login_id=login_id
)
return login
@router.post("/", response_model=LoginRead)
async def create_login(
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
login_create: LoginCreate
):
login = await crud.create_login(
session=session,
login_create=login_create
)
return login
@router.patch("/{login_id}", response_model=LoginRead)
async def update_login(
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
login_id: int,
login_update: LoginUpdate
):
login = await crud.update_login(
session=session,
login_id=login_id,
login_update=login_update
)
return login

View File

@ -0,0 +1,57 @@
from fastapi import APIRouter, Depends
from core.settings import settings
from sqlalchemy.ext.asyncio import AsyncSession
from typing import Annotated
from repo.schemas import UserRead, UserCreate, UserUpdate
from core.models import db_helper
import repo.crud.user as crud
router = APIRouter(
prefix=settings.api.v1.user,
tags=["Users"]
)
@router.get("/", response_model=list[UserRead])
async def get_all_users(
session: Annotated[AsyncSession, Depends(db_helper.session_getter)]
):
users = await crud.get_all_users(session=session)
return users
@router.get("/{user_id}", response_model=UserRead)
async def get_user(
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
user_id: int
):
users = await crud.get_user(
session=session,
user_id=user_id
)
return users
@router.post("/", response_model=UserRead)
async def create_user(
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
user_create: UserCreate
):
users = await crud.create_user(
session=session,
user_create=user_create
)
return users
@router.patch("/{user_id}", response_model=UserRead)
async def update_user(
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
user_id: int,
user_update: UserUpdate
):
users = await crud.update_user(
session=session,
user_id=user_id,
user_update=user_update
)
return users

View File

@ -1,7 +0,0 @@
from fastapi import APIRouter
router = APIRouter()
@router.get("/hello")
async def say_hello():
return {"msg":"hello"}