跳转至

API 参考概览

本节提供 Faster APP 核心 API 的完整参考文档。

模块概览

模块 说明 主要内容
faster_app.app 应用核心 create_app(), get_app()
faster_app.models.base 模型基类 UUIDModel, DateTimeModel, EnumModel, ScopeModel
faster_app.routes 路由工具 路由装饰器、响应工具
faster_app.utils 工具函数 CRUD、响应、装饰器
faster_app.commands.base 命令基类 BaseCommand
faster_app.settings 配置管理 BaseSettings, get_settings()

快速导航

app

Faster APP 应用实例模块

create_app()

创建 FastAPI 应用实例

源代码位于: faster_app/app.py
def create_app() -> FastAPI:
    """创建 FastAPI 应用实例"""
    app = FastAPI(
        title=configs.PROJECT_NAME,
        version=configs.VERSION,
        debug=configs.DEBUG,
        lifespan=lifespan,
        docs_url=None,
        redoc_url=None,
    )

    # 添加静态文件服务器
    try:
        app.mount(
            "/static", StaticFiles(directory=f"{BASE_DIR}/statics"), name="static"
        )
    except Exception as e:
        logger.error(f"静态文件服务器启动失败: {e}")

    # 添加中间件
    middlewares = MiddlewareDiscover().discover()
    for middleware in middlewares:
        app.add_middleware(middleware["class"], **middleware["kwargs"])
        logger.info(f"Loaded middleware: {middleware['class'].__name__}")

    # 添加路由
    routes = RoutesDiscover().discover()
    for route in routes:
        app.include_router(route)

    return app

get_app()

获取应用实例(单例模式)

源代码位于: faster_app/app.py
def get_app() -> FastAPI:
    """获取应用实例(单例模式)"""
    if not hasattr(get_app, "_app"):
        get_app._app = create_app()
    return get_app._app

base

模型基类, 使用 pydantic 库管理模型

UUIDModel

Bases: Model

模型基类

Source code in faster_app/models/base.py
class UUIDModel(Model):
    """模型基类"""

    id = UUIDField(primary_key=True, verbose_name="ID")

    class Meta:
        abstract = True

DateTimeModel

Bases: Model

模型基类

Source code in faster_app/models/base.py
class DateTimeModel(Model):
    """模型基类"""

    created_at = DatetimeField(auto_now_add=True, verbose_name="创建时间")
    updated_at = DatetimeField(auto_now=True, verbose_name="更新时间")

    class Meta:
        abstract = True

StatusModel

Bases: Model

模型基类

Source code in faster_app/models/base.py
class StatusModel(Model):
    """模型基类"""

    class StatusEnum(IntEnum):
        """状态枚举"""

        ACTIVE = 1
        INACTIVE = 0

    status = IntEnumField(default=1, verbose_name="状态", enum_type=StatusEnum)

    class Meta:
        abstract = True

StatusEnum

Bases: IntEnum

状态枚举

Source code in faster_app/models/base.py
class StatusEnum(IntEnum):
    """状态枚举"""

    ACTIVE = 1
    INACTIVE = 0

ScopeModel

Bases: Model

作用域模型基类, 存储作用域

Source code in faster_app/models/base.py
class ScopeModel(Model):
    """作用域模型基类, 存储作用域"""

    class ScopeEnum(StrEnum):
        """作用域枚举"""

        SYSTEM = "system"
        TENANT = "tenant"
        PROJECT = "project"
        OBJECT = "object"

    scope = CharEnumField(ScopeEnum, default=ScopeEnum.PROJECT, verbose_name="作用域")

    class Meta:
        abstract = True

ScopeEnum

Bases: StrEnum

作用域枚举

Source code in faster_app/models/base.py
class ScopeEnum(StrEnum):
    """作用域枚举"""

    SYSTEM = "system"
    TENANT = "tenant"
    PROJECT = "project"
    OBJECT = "object"

utils

Utility functions and decorators

更多详细文档请查看各子页面...