refactor: flask后端改为异步fastapi
This commit is contained in:
43
utils/api_control.py
Normal file
43
utils/api_control.py
Normal file
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
from typing import Optional, Any
|
||||
from fastapi import Response
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class ResponseModel(BaseModel):
|
||||
"""
|
||||
统一返回模型
|
||||
"""
|
||||
code: int = 200
|
||||
msg: str = "Success"
|
||||
data: Optional[Any] = None
|
||||
|
||||
|
||||
class ApiResponse:
|
||||
@staticmethod
|
||||
def __response(code: int, msg: str, data: Optional[Any] = None) -> ResponseModel:
|
||||
return ResponseModel(code=code, msg=msg, data=data)
|
||||
|
||||
@classmethod
|
||||
def success(cls, *, code: int = 200, msg: str = 'Success', data: Optional[Any] = None) -> Response:
|
||||
response_model = cls.__response(code=code, msg=msg, data=data)
|
||||
return cls(content=response_model.model_dump())
|
||||
|
||||
@classmethod
|
||||
def fail(cls, *, code: int = 400, msg: str = 'Bad Request', data: Optional[Any] = None) -> Response:
|
||||
response_model = cls.__response(code=code, msg=msg, data=data)
|
||||
return cls(content=response_model.model_dump())
|
||||
|
||||
response_api = ApiResponse()
|
||||
|
||||
""" 示例
|
||||
@app.get("/example-success")
|
||||
async def example_success():
|
||||
return response_api.success(data={"key": "value"})
|
||||
|
||||
@app.get("/example-fail")
|
||||
async def example_fail():
|
||||
return response_api.fail(msg="Something went wrong", data={"error": "details"})
|
||||
"""
|
||||
Reference in New Issue
Block a user