HX::net 简介
HX::net为 网络库, 使用 Http1.1 协议; 相关头文件存放于HXLibs/net。
一、服务端
1.1 快速示例
- 一个简单的hello world:
#include <HXLibs/net/server/HttpServer.hpp>
int main() {
using namespace HX::net;
HttpServer server{/*port:*/28205};
server.addEndpoint<GET>("/", [] (Request& req, Response& res) {
co_await res.setStatusAndContent(Status::CODE_200, "Hello World!")
.sendRes();
});
server.syncRun();
}
6行代码就可以实现一个简单http服务器了, 用户不需要关注多少细节, 直接写业务逻辑就行了。
1.2 认识 API 宏
为了方便用户使用, 我们提供了 API 宏:
/**
* @brief 定义标准的端点, 请求使用`req`变量, 响应使用`res`变量
*/
#define ENDPOINT ( \
[[maybe_unused]] HX::net::Request& req, \
[[maybe_unused]] HX::net::Response& res \
) -> HX::coroutine::Task<>
这样可以简化端点的声明:
#include <HXLibs/net/ApiMacro.hpp>
int main() {
using namespace HX::net;
HttpServer server{28205};
server.addEndpoint<GET>("/", [] ENDPOINT {
co_await res.setStatusAndContent(Status::CODE_200, "Hello World!")
.sendRes();
});
server.syncRun();
}
对于常见的 后端三层架构, 我们也提供了 控制层 (Controller) 的声明宏, 以方便用户以统一的方式使用:
并且支持依赖注入

