fix: 重置返回值格式
This commit is contained in:
parent
78ff7c60d4
commit
6742916119
|
|
@ -5,12 +5,11 @@ import aioredis
|
|||
from fastapi import APIRouter, Depends, Query
|
||||
from fastapi.security import OAuth2PasswordBearer
|
||||
from fastapi_plugins import depends_redis
|
||||
from fastapi_sqlalchemy import db
|
||||
from pydantic import BaseModel
|
||||
from pydantic_sqlalchemy import sqlalchemy_to_pydantic
|
||||
|
||||
from src.biz.test import get_user_by_id
|
||||
from src.models.devices_place import DevicesPlace
|
||||
from biz.example import get_user_by_id
|
||||
from dtos import response
|
||||
from dtos.example import UserListPagesResult, UserListResult
|
||||
|
||||
router = APIRouter(prefix="/test")
|
||||
|
||||
|
|
@ -51,20 +50,20 @@ async def get_user():
|
|||
async def read_users_me(current_user: User = Depends(get_current_user)):
|
||||
return current_user
|
||||
|
||||
@router.get('/users', response_model=UserListResult)
|
||||
def get_user_list():
|
||||
data = [{"id": 12, "user_name": "lala"}]
|
||||
res = response(data=data, message="Ok!")
|
||||
return res
|
||||
|
||||
# 数据库查询
|
||||
@router.get("/query")
|
||||
def query(mid: Optional[str] = Query(None, description='mid'),
|
||||
region_id: int = Query(..., description="区域Id"),
|
||||
limit: int = 20,
|
||||
page_count: int = 1):
|
||||
if mid is None:
|
||||
records = db.session.query(DevicesPlace).filter(DevicesPlace.region_id == region_id)\
|
||||
.order_by(DevicesPlace.id).limit(limit).offset(limit*(page_count-1)).all()
|
||||
else:
|
||||
records = db.session.query(DevicesPlace).filter(DevicesPlace.mid == mid)\
|
||||
.filter(DevicesPlace.region_id == region_id).order_by(DevicesPlace.id).limit(limit).offset(limit*(page_count-1)).all()
|
||||
return records
|
||||
|
||||
@router.get('/user_list_pages', response_model=UserListPagesResult)
|
||||
async def get_user_list_pages(page: int = Query(..., description="当前页码"),
|
||||
limit: int = 20):
|
||||
items = [{"id": 12, "user_name": "lala"}]
|
||||
data = {"totalRecords": limit, "totalPages": 0, "currentPage": page, "items": items}
|
||||
res = response(data=data, message="Ok!")
|
||||
return res
|
||||
|
||||
|
||||
# Redis 缓存查询
|
||||
|
|
|
|||
|
|
@ -3,24 +3,38 @@ from typing import Any, List, Union
|
|||
from pydantic import BaseModel
|
||||
|
||||
|
||||
def response(status=200, message="", data=None, err_code=0, err_detail="", target_url=""):
|
||||
result = {
|
||||
"result": data,
|
||||
"code": status,
|
||||
"error": {
|
||||
"code": status if not err_code and status != 200 else err_code,
|
||||
"message": message,
|
||||
"details": err_detail if err_detail else message
|
||||
}
|
||||
}
|
||||
return result
|
||||
|
||||
|
||||
class ErrorModel(BaseModel):
|
||||
code: int = 200
|
||||
message: str = ""
|
||||
details: str = ""
|
||||
|
||||
|
||||
class PageItemModel(BaseModel):
|
||||
totalRecords: int = 0
|
||||
totalPages: int = 0
|
||||
currentPage: int = 0
|
||||
items: List[Any] = []
|
||||
items: List[BaseModel] = []
|
||||
|
||||
class BaseResponse(BaseModel):
|
||||
result: Union[dict, list, Any] = None
|
||||
code: int = 200
|
||||
error: ErrorModel = ErrorModel()
|
||||
error: ErrorModel
|
||||
|
||||
class ListResponse(BaseResponse):
|
||||
result: PageItemModel = PageItemModel()
|
||||
result: PageItemModel
|
||||
|
||||
class SuccessResponse(BaseResponse):
|
||||
result: dict = dict(success=True)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
from typing import List
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from src.dtos import BaseModel, BaseResponse, ListResponse, PageItemModel
|
||||
|
||||
|
||||
class UserDto(BaseModel):
|
||||
id: int = Field(None, alias='id', description='id')
|
||||
userName: str = Field(None, description='用户名')
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
allow_population_by_field_name = True
|
||||
|
||||
|
||||
class UserListPagesItem(PageItemModel):
|
||||
items: List[UserDto]
|
||||
|
||||
|
||||
class UserListPagesResult(ListResponse):
|
||||
result: UserListPagesItem
|
||||
|
||||
|
||||
class UserListResult(BaseResponse):
|
||||
result: List[UserDto]
|
||||
Loading…
Reference in New Issue