Echo Server:Drogon 内存版用户系统

第一阶段:WSL2 + VSCode + CMake + 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