3cb7684039
- skills: 移除 edge_collector 专属技能(OTA/协议/边缘主机/collector 等), 保留通用工程规范(analyze-questions/cpp-coding-style/git-commit/shell-scripting/ frontend-debug/frontend-dialog/frontend-ui-conventions),新增 wind_power_cal 项目技能(wind-project-overview/build-run/deploy/backend-conventions/ frontend-conventions/third-party-libs)与元技能 skill-builder; .agents/skills 与 .claude/skills 保持同步 - 前端: HomePage/App.css 增加设计功率曲线录入与图表展示 Co-Authored-By: Claude <noreply@anthropic.com>
1.9 KiB
1.9 KiB
name, description
| name | description |
|---|---|
| wind-backend-conventions | wind_power_cal 后端 Drogon 规范。用于新增/修改后端 Controller、接口、响应、配置时,遵循 HttpController 模式与统一响应信封。 |
后端 Drogon 规范
新增 Controller
backend/src/controllers/XxxController.{h,cpp}(CMakeGLOB_RECURSE src/*.cpp自动纳入,无需改 CMakeLists)- 头文件继承
drogon::HttpController<XxxController>,用METHOD_LIST_BEGIN / ADD_METHOD_TO / METHOD_LIST_END声明路由:METHOD_LIST_BEGIN ADD_METHOD_TO(XxxController::GetXxx, "/api/xxx", Get); METHOD_LIST_END - handler 签名:
void GetXxx(const HttpRequestPtr&, std::function<void(const HttpResponsePtr&)>&& callback) main.cpp注册:app().registerController(std::make_shared<XxxController>());
响应信封(必须遵守)
统一 {"status":0,"msg":"success","data":{...}},用 backend/src/utils/ResponseUtil.h(header-only,自 edge_collector 复制):
#include "utils/ResponseUtil.h"
json data; data["version"] = "0.1.0";
SendSuccess(callback, data); // 成功带数据
SendSuccess(callback); // 成功无数据
SendError(callback, 1, "参数错误"); // 业务错误
SendForbidden(callback); // 无权限(code 3, 403)
include / 命名空间
#include <nlohmann/json.hpp>(third_party/nlohmann 已在 include path)main.cpp必须using namespace drogon;,否则app()/HttpResponse/CT_TEXT_HTML未声明
配置 / SPA
backend/config/server_config.json:listener(默认 :8848)、CORS、document_root ./web- SPA 回退:
app().setCustom404Page(HttpResponse::newFileResponse("./web/index.html","",CT_TEXT_HTML), false)
现有 Controller
SystemController:/api/system/health、/api/system/versionWindPowerController:风电功率计算业务接口