Web
web功能包用于创建一个web服务器,提供了前端交互访问的http接口、web socket、web静态资源服务。
在开始中创建了rsup的配置文件config.toml,其中包含了web服务的配置。
[web]
port = 8888
static_dir = "/opt/rsup/web"配置端口号默认8888,配置静态资源目录,默认为/opt/rsup/web(这是macos,windows系统查看)。
web服务提供的数据能力可以为自己所用,不使用默认提供的前端页面能力。可用于服务端、web端、桌面端。
http 服务
http请求接口前缀为/api,分功能模块,又分为:
/pkg/*提供了获取项目依赖相关的信息。/env/*提供获取当前环境下的node版本信息,包括:npm版本、pnpm版本、yarn版本。
http请求统一响应格式为:
#[derive(Deserialize, Serialize)]
pub struct ResParams<T> {
success: bool,
msg: String,
data: Option<T>,
}
impl<T> ResParams<T> {
pub fn ok(data: T) -> ResParams<T> {
ResParams {
success: true,
data: Some(data),
msg: String::from("ok"),
}
}
pub fn err(msg: String) -> ResParams<T> {
ResParams {
success: false,
data: None,
msg,
}
}
}/pkg
/get返回所有依赖信息。没有请求参数;
响应
Response返回当前项目所有的依赖最新版本信息。数据结构信息查看Pkg数据结构定义/update更新指定的依赖到指定版本升级指定的依赖到指定版本。
请求参数结构体定义
Request:rs#[derive(Debug, Serialize, Deserialize, Clone)] pub struct UpdateParams { pub name: String, pub version: String, pub is_dev: bool, // 是否是切换依赖类型 // 开发依赖包、运行时依赖包 pub is_change: Option<bool>, }响应
Response为标准响应结构体。/graph查询指定依赖的依赖关系图。请求参数结构体定义
Request:rs#[derive(Deserialize, Serialize, Debug)] pub struct RelationGraphReq { pub name: String, }响应
Response数据为当前依赖数据信息,包括根据lock文件解析出的关系数据。数据结构定义请查看PkgInfo数据结构定义/remove移除指定的依赖请求参数结构体定义
Request:rs#[derive(Debug, Serialize, Deserialize, Clone)] pub struct RemoveParams { pub name: String, pub is_dev: bool, }响应
Response为标准响应结构体。/quickInstall快速一键安装依赖请求参数结构体定义
Request:rs#[derive(Debug, Serialize, Deserialize, Clone)] pub struct QuickInstallParams { pub manager_name: String, pub is_registry: bool, pub registry: Option<String>, pub params: Option<Vec<String>>, }响应
Response为标准响应结构体。/batchUpdate批量更新依赖请求参数结构体定义
Request,批量更新分为pathc/minor/major版本更新,更新参数为单个UpdateParams结构体的集合Vec<UpdateParams>.响应参数结构体定义
Response为标准响应结构体,响应数据为集合Vec<String>./reload重新加载依赖请求参数无.
响应参数结构体定义
Response为标准响应结构体.
/env
/get返回当前环境node\pnpm\npm等版本信息。没有请求参数;
响应
Response返回当前环境node\pnpm\npm等版本信息。rs#[derive(Deserialize, Serialize, Clone)] pub struct Env { /// 命令名称 pub name: String, /// 命令版本 pub version: String, /// 命令路径 pub path: String, /// 命令是否是批处理操作 pub is_cmd: bool, } #[derive(Deserialize, Serialize)] pub struct EnvVec { /// node #[serde(skip_serializing_if = "Option::is_none")] pub node: Option<Env>, /// npm #[serde(skip_serializing_if = "Option::is_none")] pub npm: Option<Env>, /// pnpm #[serde(skip_serializing_if = "Option::is_none")] pub pnpm: Option<Env>, /// yarn #[serde(skip_serializing_if = "Option::is_none")] pub yarn: Option<Env>, }
web socket 服务
主要用于获取当前项目依赖的最新版本信息,依赖信息是异步请求,前端页面实现加载状态。在请求完成后发送消息给前端。
本地服务启动后,访问/ws 可连接websocket服务。支持多个客户端连接,数据之间是共享的。
