HttpServer HTTP 服务端 API 文档
HttpServer 是 EasyBot 提供的 HTTP 服务端 API,用于在插件中创建和管理 HTTP 服务器,支持路由注册、请求处理等功能。
核心类型
HttpRequestHandler 类型
HTTP 请求处理函数类型:
type HttpRequestHandler = (request: RequestMessage, response: ResponseMessage) => void | ResponseMessage;
HttpServerApi 接口
HTTP 服务器管理接口,提供服务器创建、启动、路由注册等功能。
服务器管理
CreateServer()
功能: 创建 HTTP 服务器
语法: CreateServer(port: number, id?: string, host?: string): string
参数:
port(number): 监听端口id(string, 可选): 服务器ID,为空则自动生成host(string, 可选): 监听地址,默认为 localhost
返回值: string - 服务器ID
示例:
const serverId = httpServer.CreateServer(8080, "my-server", "localhost");
logger.info("服务器ID:", serverId);
StartServerAsync()
功能: 启动 HTTP 服务器
语法: StartServerAsync(id: string): Promise<boolean>
参数:
id(string): 服务器ID
返回值: Promise<boolean> - 是否启动成功
示例:
const started = await httpServer.StartServerAsync("my-server");
if (started) {
logger.info("服务器启动成功");
}
StopServerAsync()
功能: 停止 HTTP 服务器
语法: StopServerAsync(id: string): Promise<boolean>
参数:
id(string): 服务器ID
返回值: Promise<boolean> - 是否停止成功
示例:
const stopped = await httpServer.StopServerAsync("my-server");
if (stopped) {
logger.info("服务器已停止");
}
DestroyServerAsync()
功能: 销毁服务器
语法: DestroyServerAsync(serverId: string): Promise<boolean>
参数:
serverId(string): 服务器ID
返回值: Promise<boolean> - 是否销毁成功
示例:
const destroyed = await httpServer.DestroyServerAsync("my-server");
路由注册
OnGet()
功能: 注册 GET 请求路由
语法: OnGet(serverId: string, path: string, handler: HttpRequestHandler): boolean
参数:
serverId(string): 服务器IDpath(string): 路径handler(HttpRequestHandler): 处理函数
返回值: boolean - 是否注册成功
示例:
const success = httpServer.OnGet("my-server", "/api/users", (req, res) => {
res.status = 200;
res.body = JSON.stringify({ users: ["Steve", "Alex"] });
});
OnPost()
功能: 注册 POST 请求路由
语法: OnPost(serverId: string, path: string, handler: HttpRequestHandler): boolean
参数:
serverId(string): 服务器IDpath(string): 路径handler(HttpRequestHandler): 处理函数
返回值: boolean - 是否注册成功
示例:
httpServer.OnPost("my-server", "/api/users", (req, res) => {
const userData = JSON.parse(req.body || "{}");
res.status = 201;
res.body = JSON.stringify({ message: "用户创建成功", user: userData });
});
OnPut()
功能: 注册 PUT 请求路由
语法: OnPut(serverId: string, path: string, handler: HttpRequestHandler): boolean
参数:
serverId(string): 服务器IDpath(string): 路径handler(HttpRequestHandler): 处理函数
返回值: boolean - 是否注册成功
示例:
httpServer.OnPut("my-server", "/api/users/:id", (req, res) => {
res.status = 200;
res.body = JSON.stringify({ message: "用户更新成功" });
});
OnDelete()
功能: 注册 DELETE 请求路由
语法: OnDelete(serverId: string, path: string, handler: HttpRequestHandler): boolean
参数:
serverId(string): 服务器IDpath(string): 路径handler(HttpRequestHandler): 处理函数
返回值: boolean - 是否注册成功
示例:
httpServer.OnDelete("my-server", "/api/users/:id", (req, res) => {
res.status = 204;
res.body = "";
});
OnRequest()
功能: 注册任意 HTTP 方法的路由
语法: OnRequest(serverId: string, method: string, path: string, handler: HttpRequestHandler): boolean
参数:
serverId(string): 服务器IDmethod(string): HTTP方法path(string): 路径handler(HttpRequestHandler): 处理函数
返回值: boolean - 是否注册成功
示例:
httpServer.OnRequest("my-server", "PATCH", "/api/users/:id", (req, res) => {
res.status = 200;
res.body = JSON.stringify({ message: "部分更新成功" });
});
OffRequest()
功能: 取消注册路由
语法: OffRequest(serverId: string, method: string, path: string): boolean
参数:
serverId(string): 服务器IDmethod(string): HTTP方法path(string): 路径
返回值: boolean - 是否取消成功
示例:
const removed = httpServer.OffRequest("my-server", "GET", "/api/users");
服务器状态查询
IsServerRunning()
功能: 获取服务器状态
语法: IsServerRunning(serverId: string): boolean
参数:
serverId(string): 服务器ID
返回值: boolean - 服务器是否运行中
示例:
if (httpServer.IsServerRunning("my-server")) {
logger.info("服务器正在运行");
}
GetServerAddress()
功能: 获取服务器地址
语法: GetServerAddress(serverId: string): string
参数:
serverId(string): 服务器ID
返回值: string - 服务器地址
示例:
const address = httpServer.GetServerAddress("my-server");
logger.info("服务器地址:", address);
GetServerIds()
功能: 获取所有服务器ID
语法: GetServerIds(): string[]
返回值: string[] - 服务器ID列表
示例:
const serverIds = httpServer.GetServerIds();
logger.info("所有服务器:", serverIds);