Echo Server:Drogon 内存版用户系统
WSL2VSCodeC++ 后端Drogon
0. 阶段目标
先把 HTTP 服务跑起来,完成 /ping、注册、登录三个最小接口。这个阶段用 unordered_map 临时保存用户,用 mutex 保护多线程读写。
| 项目 | 说明 |
|---|---|
| 建议位置 | 精选作品详情页 / 项目文档页 |
| 统一风格 | 左侧导航、右侧正文、表格说明、折叠代码块、阶段总结。 |
| 阅读顺序 | 建议从总览页进入,再按卡片顺序阅读。 |
1. 环境与依赖
确认项目在 Linux 原生路径 ~/workspace/echo-server 下,安装 C++ 编译链、CMake、JsonCpp、OpenSSL、UUID 等依赖。
cd ~/workspace/echo-server pwd sudo apt update sudo apt install -y git gcc g++ cmake make pkg-config libjsoncpp-dev uuid-dev zlib1g-dev openssl libssl-dev ls /usr/include/jsoncpp/json/json.h
2. 最小路由设计
本阶段接口只做最小闭环:连通性测试、用户注册、用户登录。复杂业务不要提前混入。
GET /ping # 服务连通性测试 POST /api/auth/register # 内存版用户注册 POST /api/auth/login # 内存版用户登录 // 核心思路 // 1. unordered_map 保存用户 // 2. mutex 保护注册与登录时的并发读写 // 3. makeJsonResponse 统一返回 JSON
3. 测试命令
用 curl 逐个验证接口,优先看原始 HTTP 状态码,再格式化 JSON。
curl http://127.0.0.1:8080/ping
curl -X POST http://127.0.0.1:8080/api/auth/register -H "Content-Type: application/json" -d '{"username":"alice","password":"123456"}' | jq
curl -X POST http://127.0.0.1:8080/api/auth/login -H "Content-Type: application/json" -d '{"username":"alice","password":"123456"}' | jq