- 阶段1: 消息类型序列化 (Serialize/Deserialize, &'static str → String) - 阶段2: FFI 边界类型 + Plugin SDK (plugin_abi, showen-plugin-sdk crate) - 阶段3: PluginLoader + DynamicPlugin (libloading 动态加载 .so) - 阶段4: 版本管理 + 错误策略 (VersionManager, PluginState, 自动回退) - 阶段5: 远程仓库客户端 (HTTP 下载 + tar.gz 安装) - 阶段6: 示例插件 + HTTP 管理 API + 全目录 README 文档 54/54 测试通过,0 warnings。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
HttpPlugin — Web UI + REST API
基于 warp 的 HTTP 服务插件,提供完整的控制 API 和实时 WebSocket 事件。
模块
| 文件 | 说明 |
|---|---|
mod.rs |
HttpPlugin 实现、HttpState 共享状态、WebSocket 事件编码 |
routes.rs |
全部 HTTP 路由定义、请求处理、内嵌 Web UI HTML |
API 端点
播放控制
GET /api/status— 播放状态POST /api/play/pause/next/previousPOST /api/goto— 跳转到指定索引GET /api/playlist— 播放列表POST /api/scene— 切换场景POST /api/trigger— 发送触发器
配置管理
GET /api/config— 完整配置GET /api/config/display— 显示配置POST /api/config— 更新配置(热重载)
媒体管理
GET /api/videos— 视频文件列表POST /api/videos/upload— 上传视频DELETE /api/videos/:name— 删除视频
WiFi / BLE
GET /api/wifi/status/scan/connect/ap/start/ap/stopPOST /api/ble/start/stop/GET /api/ble/status
插件管理 (动态插件)
GET /api/plugins— 列出所有插件状态GET /api/plugins/:id— 插件详情POST /api/plugins/:id/enable/disable/rollback/switchPOST /api/plugins/install— 远程安装POST /api/plugins/check-updates— 检查更新
WebSocket
ws://host:port/ws— 实时事件推送
依赖
- 依赖 VideoPlugin(启动顺序)