Files
chongming-plugins/example
..
2026-07-23 17:45:44 +08:00
2026-07-23 17:45:44 +08:00
2026-07-27 14:28:07 +08:00

Example Worker 插件

演示 @rpc_method 装饰器与显式模型绑定的完整用法,是学习开发新插件的入门参考。


实现的功能

四则运算(GET / POST)

端点 方法 路径 说明
加法 GET / POST /calc/add a + b
减法 GET /calc/subtract a - b
乘法 GET /calc/multiply a * b
除法 GET /calc/divide a / b(除数为 0 报错)

访问计数器

端点 方法 路径 说明
计数 GET /calc/count 每次调用计数器 +1

基于内存缓存实现,用于演示 GET 端点的无参数调用模式。


调用示例

# GET 加法
curl "http://localhost:8000/api/v1/calc/add?a=3&b=4"
# {"result":7.0,"operation":"add","timestamp":1720000000.123}

# POST 加法
curl -X POST "http://localhost:8000/api/v1/calc/add" \
  -H "Content-Type: application/json" \
  -d '{"a": 3.5, "b": 2.5}'
# {"result":6.0,"operation":"add","timestamp":1720000000.456}

# 除法(除数为零)
curl "http://localhost:8000/api/v1/calc/divide?a=10&b=0"
# {"result":0.0,"operation":"divide","error":"Division by zero"}

# 计数器
curl "http://localhost:8000/api/v1/calc/count"
# {"count":1}

如何工作

  1. 配置:config/workers/example/*.toml — 定义每个端点的参数和响应结构
  2. 模型:models/pydantic.py — 由 gen_models 根据 TOML 自动生成
  3. 路由:router/ 下每个文件实现一个 RPC 端点,使用 @rpc_method 装饰器
  4. 工厂:__init__.py 中的 create_workers 初始化数据库并启动 Worker

开发参考

此插件展示了以下模式:

  • GET 端点的 params 定义与 @rpc_method 参数绑定
  • POST 端点的 JSON body 自动解析
  • response_model 在 TOML 中定义并在装饰器中引用
  • 全局变量 (global_var.py) 管理共享资源
  • 错误处理(如除法除零返回错误信息)
  • auth_required 控制端点是否需要 JWT 鉴权
  • cacheable 控制结果是否缓存