AMOS common api
Project description
amos api
主要用于定义离线分析中的 API 规范以及通用的 Response 等
快速开始
import logging
from fastapi import (FastAPI, Body)
from fastapi.responses import JSONResponse
from pydantic import ValidationError
from amos_api import (
ResponseBase,
ResponseOK,
ResponseValidationError,
ResponseAlgorithmError,
CheckAssertionError,
CheckValueError
)
from starlette.responses import RedirectResponse
logger = logging.getLogger()
async def document():
# return RedirectResponse(url="/docs")
return RedirectResponse(url="/redoc")
def mount_app_routes(app: FastAPI):
app.get("/",
response_model=ResponseBase,
summary="swagger 文档")(document)
# tag items
app.post("/user",
tags=["User"],
summary="用户信息",
)(userInfo)
async def userInfo(name: str=Body(..., description="用户名称", examples=["ray"])) -> ResponseBase:
return ResponseBase(data={"seq":"1", "name": name,})
async def userList(name: str=Body(..., description="用户名称", examples=["ray"])) -> ResponseBase:
try:
dblist()
return ResponseOK(data=[])
except Exception as e:
if isinstance(e, (ValidationError, CheckAssertionError, CheckValueError)):
ret = ResponseValidationError(data='校验错误的详细信息')
else:
ret = ResponseAlgorithmError(data='算法错误的详细信息')
logger.error() #错误日志
return JSONResponse(status_code=ret.code, content=ret.model_dump())
HttpCode._200请求成功,正常 code 值,ResponseBase 如果不设置code时,默认值。HttpCode._400错误的请求,比如参数错误HttpCode._403禁止访问的资源HttpCode._404未找到HttpCode._422常用于参数错误HttpCode._500服务器错误,内部错误HttpCode._522服务器错误,内部错误
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
amos_api-1.0.7.tar.gz
(3.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file amos_api-1.0.7.tar.gz.
File metadata
- Download URL: amos_api-1.0.7.tar.gz
- Upload date:
- Size: 3.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8f99b485503247ef9b38421ec0d4735eb3e22330be679720a99710d92a45c3a
|
|
| MD5 |
511484f13fe605910d8802a3c6b2af75
|
|
| BLAKE2b-256 |
7fa1fea99812a7ac53678bb1949f9412c22da859ec777aa031c3766ddfcf8736
|
File details
Details for the file amos_api-1.0.7-py3-none-any.whl.
File metadata
- Download URL: amos_api-1.0.7-py3-none-any.whl
- Upload date:
- Size: 3.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f221f6476f81993a8671845c43702276cd701073f8eb999a8420953cfb1cde2
|
|
| MD5 |
77d95faf0f93dd133ecfb939c5e31f3f
|
|
| BLAKE2b-256 |
25ed3acd1443bc402316b7591df05fefcdf8d555952330d425d3c5f1d72e252b
|