refactor(router): restructure

This commit is contained in:
MingxuanGame
2025-08-11 14:38:45 +00:00
parent 867b99cca5
commit d8c607137a
14 changed files with 36 additions and 33 deletions

View File

@@ -2,23 +2,8 @@ from __future__ import annotations
from app.signalr import signalr_router as signalr_router from app.signalr import signalr_router as signalr_router
from . import ( # pyright: ignore[reportUnusedImport] # noqa: F401
beatmap,
beatmapset,
me,
misc,
relationship,
room,
score,
user,
)
from .api_router import router as api_router
from .auth import router as auth_router from .auth import router as auth_router
from .fetcher import fetcher_router as fetcher_router from .fetcher import fetcher_router as fetcher_router
from .v2 import api_v2_router as api_v2_router
__all__ = [ __all__ = ["api_v2_router", "auth_router", "fetcher_router", "signalr_router"]
"api_router",
"auth_router",
"fetcher_router",
"signalr_router",
]

View File

@@ -5,7 +5,7 @@ from app.fetcher import Fetcher
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
fetcher_router = APIRouter() fetcher_router = APIRouter(prefix="/fetcher", tags=["fetcher"])
@fetcher_router.get("/callback") @fetcher_router.get("/callback")

19
app/router/v2/__init__.py Normal file
View File

@@ -0,0 +1,19 @@
from __future__ import annotations
from app.signalr import signalr_router as signalr_router
from . import ( # pyright: ignore[reportUnusedImport] # noqa: F401
beatmap,
beatmapset,
me,
misc,
relationship,
room,
score,
user,
)
from .router import router as api_v2_router
__all__ = [
"api_v2_router",
]

View File

@@ -17,7 +17,7 @@ from app.models.score import (
GameMode, GameMode,
) )
from .api_router import router from .router import router
from fastapi import Depends, HTTPException, Query, Security from fastapi import Depends, HTTPException, Query, Security
from httpx import HTTPError, HTTPStatusError from httpx import HTTPError, HTTPStatusError

View File

@@ -8,7 +8,7 @@ from app.dependencies.fetcher import get_fetcher
from app.dependencies.user import get_current_user from app.dependencies.user import get_current_user
from app.fetcher import Fetcher from app.fetcher import Fetcher
from .api_router import router from .router import router
from fastapi import Depends, Form, HTTPException, Query, Security from fastapi import Depends, Form, HTTPException, Query, Security
from fastapi.responses import RedirectResponse from fastapi.responses import RedirectResponse

View File

@@ -6,7 +6,7 @@ from app.dependencies import get_current_user
from app.dependencies.database import get_db from app.dependencies.database import get_db
from app.models.score import GameMode from app.models.score import GameMode
from .api_router import router from .router import router
from fastapi import Depends, Security from fastapi import Depends, Security
from sqlmodel.ext.asyncio.session import AsyncSession from sqlmodel.ext.asyncio.session import AsyncSession

View File

@@ -4,7 +4,7 @@ from datetime import UTC, datetime
from app.config import settings from app.config import settings
from .api_router import router from .router import router
from pydantic import BaseModel from pydantic import BaseModel

View File

@@ -4,7 +4,7 @@ from app.database import Relationship, RelationshipResp, RelationshipType, User
from app.dependencies.database import get_db from app.dependencies.database import get_db
from app.dependencies.user import get_current_user from app.dependencies.user import get_current_user
from .api_router import router from .router import router
from fastapi import Depends, HTTPException, Query, Request, Security from fastapi import Depends, HTTPException, Query, Request, Security
from pydantic import BaseModel from pydantic import BaseModel

View File

@@ -18,7 +18,7 @@ from app.models.room import RoomCategory, RoomStatus
from app.service.room import create_playlist_room_from_api from app.service.room import create_playlist_room_from_api
from app.signalr.hub import MultiplayerHubs from app.signalr.hub import MultiplayerHubs
from .api_router import router from .router import router
from fastapi import Depends, HTTPException, Query, Security from fastapi import Depends, HTTPException, Query, Security
from pydantic import BaseModel, Field from pydantic import BaseModel, Field

View File

@@ -2,4 +2,4 @@ from __future__ import annotations
from fastapi import APIRouter from fastapi import APIRouter
router = APIRouter() router = APIRouter(prefix="/api/v2")

View File

@@ -44,7 +44,7 @@ from app.models.score import (
) )
from app.path import REPLAY_DIR from app.path import REPLAY_DIR
from .api_router import router from .router import router
from fastapi import Body, Depends, Form, HTTPException, Query, Security from fastapi import Body, Depends, Form, HTTPException, Query, Security
from fastapi.responses import FileResponse from fastapi.responses import FileResponse

View File

@@ -18,7 +18,7 @@ from app.dependencies.user import get_current_user
from app.models.score import GameMode from app.models.score import GameMode
from app.models.user import BeatmapsetType from app.models.user import BeatmapsetType
from .api_router import router from .router import router
from fastapi import Depends, HTTPException, Query, Security from fastapi import Depends, HTTPException, Query, Security
from pydantic import BaseModel from pydantic import BaseModel

View File

@@ -18,7 +18,7 @@ from fastapi import APIRouter, Depends, Header, HTTPException, Query, WebSocket
from fastapi.security import SecurityScopes from fastapi.security import SecurityScopes
from sqlmodel.ext.asyncio.session import AsyncSession from sqlmodel.ext.asyncio.session import AsyncSession
router = APIRouter() router = APIRouter(prefix="/signalr", tags=["SignalR"])
@router.post("/{hub}/negotiate", response_model=NegotiateResponse) @router.post("/{hub}/negotiate", response_model=NegotiateResponse)

View File

@@ -9,7 +9,7 @@ from app.dependencies.fetcher import get_fetcher
from app.dependencies.scheduler import init_scheduler, stop_scheduler from app.dependencies.scheduler import init_scheduler, stop_scheduler
from app.log import logger from app.log import logger
from app.router import ( from app.router import (
api_router, api_v2_router,
auth_router, auth_router,
fetcher_router, fetcher_router,
signalr_router, signalr_router,
@@ -35,9 +35,9 @@ async def lifespan(app: FastAPI):
app = FastAPI(title="osu! API 模拟服务器", version="1.0.0", lifespan=lifespan) app = FastAPI(title="osu! API 模拟服务器", version="1.0.0", lifespan=lifespan)
app.include_router(api_router, prefix="/api/v2") app.include_router(api_v2_router)
app.include_router(signalr_router, prefix="/signalr") app.include_router(signalr_router)
app.include_router(fetcher_router, prefix="/fetcher") app.include_router(fetcher_router)
app.include_router(auth_router) app.include_router(auth_router)
@@ -64,7 +64,6 @@ if settings.osu_web_client_secret == "your_osu_web_client_secret_here":
"Use this command to generate: openssl rand -hex 40" "Use this command to generate: openssl rand -hex 40"
) )
if __name__ == "__main__": if __name__ == "__main__":
import uvicorn import uvicorn