Skip to main content

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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amos_api-1.0.7-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

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

Hashes for amos_api-1.0.7.tar.gz
Algorithm Hash digest
SHA256 a8f99b485503247ef9b38421ec0d4735eb3e22330be679720a99710d92a45c3a
MD5 511484f13fe605910d8802a3c6b2af75
BLAKE2b-256 7fa1fea99812a7ac53678bb1949f9412c22da859ec777aa031c3766ddfcf8736

See more details on using hashes here.

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

Hashes for amos_api-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7f221f6476f81993a8671845c43702276cd701073f8eb999a8420953cfb1cde2
MD5 77d95faf0f93dd133ecfb939c5e31f3f
BLAKE2b-256 25ed3acd1443bc402316b7591df05fefcdf8d555952330d425d3c5f1d72e252b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page