完成路由和api骨架

This commit is contained in:
carry 2025-01-21 13:41:01 +08:00
parent 1c82ab47dd
commit b58fd6a8c6
3 changed files with 92 additions and 0 deletions

45
main.py Normal file
View File

@ -0,0 +1,45 @@
import logging
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from config import DATABASE_CONFIG, JWT_CONFIG, LOGGING_CONFIG, SYSTEM_ADMIN_CONFIG
from sqlalchemy.ext.asyncio import create_async_engine
from services.init_db import init_db
from routes.auth import auth_router
from routes.users import users_router
# 配置日志
logging.basicConfig(
level=LOGGING_CONFIG['level'],
format=LOGGING_CONFIG['format'],
filename=LOGGING_CONFIG['filename']
)
logger = logging.getLogger(__name__)
# 初始化FastAPI应用
app = FastAPI(
title="User Management System",
description="API for managing users with role-based access control",
version="1.0.0"
)
# 创建数据库引擎
engine = create_async_engine(
f"mysql+asyncmy://{DATABASE_CONFIG['user']}:{DATABASE_CONFIG['password']}@"
f"{DATABASE_CONFIG['host']}:{DATABASE_CONFIG['port']}/{DATABASE_CONFIG['database']}",
echo=True
)
# 初始化数据库
@app.on_event("startup")
async def startup_event():
logger.info("Initializing database...")
await init_db(engine)
logger.info("Database initialized successfully")
# 注册路由
app.include_router(auth_router, prefix="/api/auth", tags=["auth"])
app.include_router(users_router, prefix="/api/users", tags=["users"])
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)

17
routes/auth.py Normal file
View File

@ -0,0 +1,17 @@
from schemas.auth import Token
from fastapi import APIRouter
router = APIRouter(prefix="/api/auth", tags=["auth"])
@router.post("/login", response_model=Token)
async def login():
pass
@router.post("/logout")
async def logout():
pass
@router.post("/refresh", response_model=Token)
async def refresh_token():
pass

30
routes/users.py Normal file
View File

@ -0,0 +1,30 @@
from fastapi import APIRouter, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer
from typing import List, Optional
from models.user import User
from schemas.user import UserCreate, UserUpdate, UserResponse
from services.auth import get_current_user
router = APIRouter()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="api/auth/login")
@router.get("/", response_model=List[UserResponse])
async def get_users():
# 实现获取用户列表逻辑
pass
@router.post("/", response_model=UserResponse, status_code=status.HTTP_201_CREATED)
async def create_user():
# 实现创建用户逻辑
pass
@router.put("/{user_id}", response_model=UserResponse)
async def update_user():
# 实现更新用户逻辑
pass
@router.delete("/{user_id}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_user():
# 实现删除用户逻辑
pass