d5d381759e
- 新增计算方案保存与方案二筛选参数 - 支持方案二桨角规则和有效数据导出 - 优化功率曲线绘制和设计功率展示
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(默认 :8080)、CORS、document_root ./web- SPA 回退:
app().setCustom404Page(HttpResponse::newFileResponse("./web/index.html","",CT_TEXT_HTML), false)
现有 Controller
SystemController:/api/system/health、/api/system/versionWindPowerController:风电功率计算业务接口