| RMVL 2.3.0 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
类 | Public 类型 | Public 成员函数 | 所有成员列表
rm::async::Webapp类 参考final
数据 IO 与通信模块 » 网络通信

Web 应用程序框架 更多...

`#include <rmvl/io/netapp.hpp>`

rm::async::Webapp 的协作图:

## 类
struct | RouteEntry
| 路由条目：路由模式 + 处理器 更多...
class | RoutePattern
| 路由模式匹配器 更多...

## Public 类型
using | RouteHandler = std::function<void(const Request &, Response &)>
| 路由处理器类型

## Public 成员函数
| Webapp (IOContext &io_context)
| 创建 Web 应用程序实例
void | use (ResponseMiddleware mwf)
| 使用中间件
void | listen (uint16_t port, std::function< void()> callback=nullptr)
| 监听指定端口
void | get (std::string_view uri, std::function< void(const Request &, Response &)> callback)
| Get 请求路由
void | post (std::string_view uri, std::function< void(const Request &, Response &)> callback)
| Post 请求路由
void | head (std::string_view uri, std::function< void(const Request &, Response &)> callback)
| Head 请求路由
void | del (std::string_view uri, std::function< void(const Request &, Response &)> callback)
| Delete 请求路由
Task | spin ()
| 启动事件循环
bool | running () const noexcept
| 是否正在运行
void | stop () noexcept
| 停止运行

## 详细描述

Web 应用程序框架

1. 轻量级的异步 Web 应用程序框架，支持路由、中间件，支持路径参数和查询参数
2. 所有设计均参考 Express.js，具体的 Express.js 教程请参考 https://expressjs.com/
3. 目前支持的 HTTP 方法包括 GET、POST、DELETE

## 成员类型定义说明

## ◆ RouteHandler

using rm::async::Webapp::RouteHandler = std::function<void(const Request &, Response &)>

路由处理器类型

## 构造及析构函数说明

## ◆ Webapp()

rm::async::Webapp::Webapp | ( | IOContext & | io_context | ) |
| inline

创建 Web 应用程序实例

参数

  [in] | io_context | 异步 I/O 执行上下文

## 成员函数说明

## ◆ del()

void rm::async::Webapp::del | ( | std::string_view | uri,
|  | std::function< void(const Request &, Response &)> | callback )
| inline

Delete 请求路由

参数

  [in] | uri | 统一资源标识符，支持路径参数，如 "/api/:name"
  [in] | callback | Delete 响应回调

## ◆ get()

void rm::async::Webapp::get | ( | std::string_view | uri,
|  | std::function< void(const Request &, Response &)> | callback )
| inline

Get 请求路由

参数

  [in] | uri | 统一资源标识符，支持路径参数，如 "/api/:name"
  [in] | callback | Get 响应回调

## ◆ head()

void rm::async::Webapp::head | ( | std::string_view | uri,
|  | std::function< void(const Request &, Response &)> | callback )
| inline

Head 请求路由

参数

  [in] | uri | 统一资源标识符，支持路径参数，如 "/api/:name"
  [in] | callback | Head 响应回调

## ◆ listen()

void rm::async::Webapp::listen | ( | uint16_t | port,
|  | std::function< void()> | callback = nullptr )
| inline

监听指定端口

参数

  [in] | port | 监听的端口号
  [in] | callback | 启动后调用的回调函数

函数调用图:

## ◆ post()

void rm::async::Webapp::post | ( | std::string_view | uri,
|  | std::function< void(const Request &, Response &)> | callback )
| inline

Post 请求路由

参数

  [in] | uri | 统一资源标识符，支持路径参数，如 "/api/:name"
  [in] | callback | Post 响应回调

## ◆ running()

bool rm::async::Webapp::running | ( |  | ) | const
| inline nodiscard noexcept

是否正在运行

## ◆ spin()

Task rm::async::Webapp::spin | ( |  | ) |
| nodiscard

启动事件循环

返回
  rm::async::Task<> 异步任务

## ◆ stop()

void rm::async::Webapp::stop | ( |  | ) |
| inline noexcept

停止运行

## ◆ use()

void rm::async::Webapp::use | ( | ResponseMiddleware | mwf | ) |

使用中间件

参数

  [in] | mwf | 中间件函数

函数调用图:

该类的文档由以下文件生成:

- rmvl/io/netapp.hpp