cppnet::HttpContext

HttpContext(HttpReq &req, HttpResp &resp, std::shared_ptr<Socket> &soc)

  • 参数:
    • req:Http 请求对象的引用。
    • resp:Http 响应对象的引用。
    • soc:指向套接字的智能指针的引用。
  • 返回值:无
  • 作用:构造一个 HttpContext 对象,用于存储 Http 请求、响应和套接字信息。

Next()

  • 参数:无
  • 返回值:无
  • 作用:设置继续执行的标志,在中间件中使用。

Abort()

  • 参数:无
  • 返回值:无
  • 作用:设置停止执行的标志,在中间件中使用。

is_continue()

  • 参数:无
  • 返回值:bool类型,表示是否继续执行。
  • 作用:获取当前的执行状态标志。

T Get(const std::string &key)

  • 参数:
    • key:字符串类型,用于查找内联数据的键。
  • 返回值:模板类型T的值,如果类型转换失败则返回默认值。
  • 作用:根据给定的键获取内联数据。

void Set(const std::string &key, const T &value)

  • 参数:
    • key:字符串类型,内联数据的键。
    • value:模板类型T的值,要设置的内联数据。
  • 返回值:无
  • 作用:设置内联数据。

req()

  • 参数:无
  • 返回值:HttpReq &,Http 请求对象的引用。
  • 作用:获取 Http 请求对象。

resp()

  • 参数:无
  • 返回值:HttpResp &,Http 响应对象的引用。
  • 作用:获取 Http 响应对象。

soc()

  • 参数:无
  • 返回值:Socket &,套接字对象的引用。
  • 作用:获取套接字对象。

cppnet::HttpGroup

int GET(const std::string &path, HttpCallback callback, const std::vector<std::shared_ptr<HttpFilter>> &filters = {})

  • 参数:
    • path:字符串类型,请求路径。
    • callback:函数指针类型,请求回调函数。
    • filters:包含HttpFilter智能指针的向量,请求过滤器。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:注册 GET 请求的处理函数和过滤器。

int GET(const std::string &path, std::initializer_list<HttpCallback> callbacks, const std::vector<std::shared_ptr<HttpFilter>> &filters = {})

  • 参数:
    • path:字符串类型,请求路径。
    • callbacks:初始化列表类型,包含多个请求回调函数。
    • filters:包含HttpFilter智能指针的向量,请求过滤器。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:注册多个 GET 请求的处理函数和过滤器。

int POST(const std::string &path, HttpCallback callback, const std::vector<std::shared_ptr<HttpFilter>> &filters = {})

  • 参数:
    • path:字符串类型,请求路径。
    • callback:函数指针类型,请求回调函数。
    • filters:包含HttpFilter智能指针的向量,请求过滤器。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:注册 POST 请求的处理函数和过滤器。

int POST(const std::string &path, std::initializer_list<HttpCallback> callbacks, const std::vector<std::shared_ptr<HttpFilter>> &filters = {})

  • 参数:
    • path:字符串类型,请求路径。
    • callbacks:初始化列表类型,包含多个请求回调函数。
    • filters:包含HttpFilter智能指针的向量,请求过滤器。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:注册多个 POST 请求的处理函数和过滤器。

int RegisterHandler(const std::string &path, HttpCallback callback, const std::vector<std::shared_ptr<HttpFilter>> &filters = {}, bool is_exact_match = true)

  • 参数:
    • path:字符串类型,请求路径。
    • callback:函数指针类型,请求回调函数。
    • filters:包含HttpFilter智能指针的向量,请求过滤器。
    • is_exact_match:布尔类型,是否精确匹配路径。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:注册通用请求的处理函数和过滤器,并指定匹配方式。

int RegisterHandler(const std::string &path, std::initializer_list<HttpCallback> callbacks, const std::vector<std::shared_ptr<HttpFilter>> &filters = {}, bool is_exact_match = true)

  • 参数:
    • path:字符串类型,请求路径。
    • callbacks:初始化列表类型,包含多个请求回调函数。
    • filters:包含HttpFilter智能指针的向量,请求过滤器。
    • is_exact_match:布尔类型,是否精确匹配路径。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:注册多个通用请求的处理函数和过滤器,并指定匹配方式。

int Use(HttpCallback callback, const std::vector<std::shared_ptr<HttpFilter>> &filters = {})

  • 参数:
    • callback:函数指针类型,中间件回调函数。
    • filters:包含HttpFilter智能指针的向量,中间件过滤器。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:注册中间件。

int StaticDir(const std::string &path, const std::string &dir_path, const std::vector<std::shared_ptr<HttpFilter>> &filters = {})

  • 参数:
    • path:字符串类型,请求路径。
    • dir_path:字符串类型,静态目录路径。
    • filters:包含HttpFilter智能指针的向量,请求过滤器。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:添加静态目录。

int StaticFile(const std::string &path, const std::string &file_path, const std::vector<std::shared_ptr<HttpFilter>> &filters = {})

  • 参数:
    • path:字符串类型,请求路径。
    • file_path:字符串类型,静态文件路径。
    • filters:包含HttpFilter智能指针的向量,请求过滤器。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:添加静态文件。

HttpGroup Group(const std::string &route)

  • 参数:
    • route:字符串类型,子路由路径。
  • 返回值:HttpGroup类型,新的 HttpGroup 对象。
  • 作用:创建一个新的 HttpGroup 对象,用于分组路由。

std::string err_msg()

  • 参数:无
  • 返回值:std::string类型,错误消息。
  • 作用:获取错误消息。

std::shared_ptr<Logger> logger()

  • 参数:无
  • 返回值:指向日志对象的智能指针。
  • 作用:获取日志对象。

void set_logger(std::shared_ptr<Logger> logger)

  • 参数:
    • logger:指向日志对象的智能指针。
  • 返回值:无
  • 作用:设置日志对象。

cppnet::HttpServer

  • 主要使用类,构建http 服务器

HttpServer()

  • 参数:无
  • 返回值:无
  • 作用:构造一个 HttpServer 对象,继承自 HttpGroup。

int Init(const Address &addr)

  • 参数:
    • addr:地址对象。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:初始化 Http 服务器。

int Run()

  • 参数:无
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:运行 Http 服务器。

void Stop()

  • 参数:无
  • 返回值:无
  • 作用:停止 Http 服务器。

TcpServer &server()

  • 参数:无
  • 返回值:TcpServer &,Tcp 服务器对象的引用。
  • 作用:获取 Tcp 服务器对象。

void SetReadTimeout(unsigned timeout_sec, unsigned timeout_usec)

  • 参数:
    • timeout_sec:秒数。
    • timeout_usec:微秒数。
  • 返回值:无
  • 作用:设置读取超时时间。

void SetWriteTimeout(unsigned timeout_sec, unsigned timeout_usec)

  • 参数:
    • timeout_sec:秒数。
    • timeout_usec:微秒数。
  • 返回值:无
  • 作用:设置写入超时时间。

int InitSSL(const Address &addr, std::shared_ptr<SSLContext> ssl_context)

  • 参数:
    • addr:地址对象。
    • ssl_context:指向 SSL 上下文的智能指针。
  • 返回值:int类型,0 表示成功,-1 表示失败。
  • 作用:初始化 HTTPS 服务器。
  • 注意: 这个部分只有在 开启ssl才可用