跳到主要内容
WaveYo-API

WaveYo-API

核心-插件 架构的高性能API框架

pipx install yoapi-cli && yoapi init

command line interface

CLI 工具使用

WaveYo-API 提供了强大的命令行工具来简化插件开发和管理流程

CLI 命令示例
# 创建新插件
yoapi plugin new my-plugin

# 下载插件
yoapi plugin download WaveYo/yoapi_plugin_demoapi

# 列出已安装插件
yoapi plugin list

# 运行项目
yoapi run --reload

plugin metadata management

插件元数据管理

统一的插件元数据管理系统,支持优先级加载、依赖管理和向后兼容

plugin.json 配置
{
"name": "yoapi_plugin_demoapi",
"version": "0.1.0",
"description": "示例API插件",
"author": "开发者名称",
"priority": 50,
"dependencies": ["yoapi_plugin_log"],
"tags": ["api", "example"]
}

smart dependency resolution

智能依赖解析

自动拓扑排序算法,支持依赖关系解析和循环依赖检测

依赖注入示例
def register(app, **dependencies):
# 获取日志服务
log_service = dependencies.get('log_service')
logger = log_service.get_logger(__name__)

# 获取数据库服务
db_service = dependencies.get('db_service')

# 获取配置服务
config = dependencies.get('config')

logger.info("插件已成功注册")

logging system

日志系统

统一的日志格式和级别管理,支持模块化日志记录和上下文信息

日志格式示例
[INFO][plugin_manager]2025-09-05-14:30:25 || 插件 yoapi_plugin_demoapi 加载成功
[DEBUG][demoapi]2025-09-05-14:30:26 || 数据库连接已建立
[WARNING][auth]2025-09-05-14:30:27 || API密钥验证失败,ID: 67fac2dc-7c19-11f0-b527-b8cef6abb894
[ERROR][database]2025-09-05-14:30:28 || 数据库查询超时
[CRITICAL][core]2025-09-05-14:30:29 || 无法连接到主数据库

plugin type system

插件类型系统

支持多种插件类型:API端点、数据库服务、认证授权、工具类插件

API端点插件示例
from fastapi import APIRouter, Depends

router = APIRouter(prefix="/api", tags=["api"])

@router.get("/items")
async def get_items():
return {"items": []}

def register(app, **dependencies):
log_service = dependencies.get('log_service')
logger = log_service.get_logger(__name__)

app.include_router(router)
logger.info("API插件已注册")

environment validation

环境变量验证

强大的环境变量验证框架,支持类型检查、默认值和必需性验证

环境变量验证
from core.env_validator import get_env_validator, EnvVarType

# 定义环境变量模式
ENV_SCHEMA = {
"DB_URL": {
"type": EnvVarType.STRING,
"required": True,
"description": "数据库连接URL"
},
"MAX_CONNECTIONS": {
"type": EnvVarType.INTEGER,
"required": False,
"default": 10,
"min": 1,
"max": 100
}
}

# 验证环境变量
validator = get_env_validator()
env_vars = validator.validate_env_vars("demo", ENV_SCHEMA)

error handling

错误处理

完善的错误处理机制,支持异常捕获、日志记录和友好的错误响应

错误处理示例
def register(app, **dependencies):
try:
log_service = dependencies.get('log_service')
logger = log_service.get_logger(__name__)

# 插件初始化逻辑
initialize_plugin()

logger.info("插件初始化成功")
except Exception as e:
logger.error(f"插件初始化失败: {e}")
# 可以选择重新抛出异常或进行恢复处理
raise