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.6.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.6-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file amos_api-1.0.6.tar.gz.

File metadata

  • Download URL: amos_api-1.0.6.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.6.tar.gz
Algorithm Hash digest
SHA256 be80c20381a46643b1c35d4a5464bcdfd9b99d02ab53e03342c7645e61b1a310
MD5 3736232a77eeb8195ce9eab4ddde8d27
BLAKE2b-256 ce6c940c5a18bcc5cfa8120d5be15926885b351faecb9a957be3a0c94537c95a

See more details on using hashes here.

File details

Details for the file amos_api-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: amos_api-1.0.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d1a1f2d096eb41e0c4bd4c21937889651dd4bb9c1fca80328914b980b8931d71
MD5 b7e358c1c9284465a5f58aaa9fd2f04e
BLAKE2b-256 34517fdfe7601e14e98fbd54d9670f049f181dc2d1f6ca02935a26870d29b924

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