Add public API for player statistics and information queries

This commit is contained in:
咕谷酱
2025-09-11 02:34:01 +08:00
parent 7d79f3cee7
commit e589e68881
6 changed files with 661 additions and 3 deletions

View File

@@ -0,0 +1,26 @@
from __future__ import annotations
from datetime import datetime
from enum import Enum
from app.dependencies.rate_limit import LIMITERS
from fastapi import APIRouter
from pydantic import BaseModel, field_serializer
# 公共V1 API路由器 - 不需要认证
public_router = APIRouter(prefix="/api/v1", dependencies=LIMITERS, tags=["V1 Public API"])
class AllStrModel(BaseModel):
@field_serializer("*", when_used="json")
def serialize_datetime(self, v, _info):
if isinstance(v, Enum):
return str(v.value)
elif isinstance(v, datetime):
return v.strftime("%Y-%m-%d %H:%M:%S")
elif isinstance(v, bool):
return "1" if v else "0"
elif isinstance(v, list):
return [self.serialize_datetime(item, _info) for item in v]
return str(v)