跳到主要内容

HTTPApi控制

Zaitonn

提供HTTPApi控制

警告
  • 此插件需要在v1.3.3及以上的版本运行,否则可能出现一些意想不到的问题
  • 你需要安装文件读写模块前置插件,下载后放在modules文件夹内即可

功能

提供HTTPApi控制,可外接第三方软件使用Serein的部分功能

提示
  • 配置
    • 端口
    • 鉴权文本(可配置多个)
    • ip白名单(本地ip总是会被放行)
  • API
    • 服务器
      • 启动服务器
      • 关闭服务器
      • 强制结束服务器
      • 发送命令
      • 获取服务器信息
    • 绑定/解绑
    • 通信
      • 数据包
      • 私聊
      • 群聊
    • 获取系统信息
    • 执行Serein命令

使用方法

  1. 将插件复制到 plugins 文件夹下后启动Serein
  2. 第一次加载时会生成配置文件,你需要打开 plugins/HTTPApi/config.json 按需修改端口和鉴权凭证
  3. 重新加载插件应用配置
  4. 使用你的第三方软件控制

配置文件说明

{
"auth": [], // 鉴权凭证列表
"port": 2222, // 端口
"whitelist": [], // 白名单IP
"enableWhitelist": false // 启用白名单
}

开发文档

提示

你需要有一定的编程基础

基网址 http://127.0.0.1:{端口号}/serein,使用GET请求,使用其他请求方法将返回405

响应内容

v1.1版本已支持返回具体信息

状态码解释
200执行成功
202已执行但结果未知
400请求无效
401未通过验证
403执行失败(服务器未开启、WS未连接、绑定或解绑失败)
405使用了错误的请求方法
406缺少参数
500插件错误

响应头

  • Content-Length: 数据包具体长度
  • Content-Type: application/json

数据结构

  • status
    • 类型:Number
    • 状态码
  • data
    • 类型:Object
    • 返回的数据主体
  • time
    • 类型:Number
    • 时间戳,精确到秒

200

{
"status": 200,
"data": "欢迎使用Serein HttpApi v1.1。此插件运行在Serein v1.3.4",
"time": 1678616128
}

202

{
"status": 202,
"data": {
"success": true,
"reason": ""
},
"time": 1678612328
}

401

{
"status": 401,
"data": "需要通过验证",
"time": 1678616070
}

403

{
"status": 403,
"data": {
"success": false,
"reason": "服务器不在运行中"
},
"time": 1678616158
}

404

{
"status": 404,
"data": "未知的操作类型",
"time": 1678616181
}

406

{
"status": 406,
"data": "未知的操作类型",
"time": 1678616186
}

500

{
"status": 500,
"data": {
"name": "Error",
"msg": "测试错误",
"stack": " at <anonymous>:409:1"
},
"time": 1678616283
}

鉴权凭证

参数:auth
类型:string

执行任何操作都需要添加此参数,未添加或无效则返回401

eg: http://127.0.0.1:{端口号}/serein?auth=test

操作内容

参数:operation
类型:string (不区分大小写)

启动服务器

startserver

  • 服务器已运行或启动文件未找到返回403

关闭服务器

stopserver

  • 服务器已关闭返回403

强制结束服务器

killserver

  • 服务器已关闭返回403

发送命令

sendcmd

  • 子参数
    • command
    • 类型:string
  • 未提供子参数返回406
  • 服务器已关闭返回403
提示

http://127.0.0.1:{端口号}/serein?auth=test&operation=sendcmd&command=help->发送help命令

获取服务器状态信息

getserverinfo

// 返回示例
{
"status": 200,
"data": {
"status": true,
"runtime": "0.6m",
"cpuusage": 20.23,
"filename": "echo.bat"
},
"time": "1678615830"
}

获取系统信息

getsysinfo

// 返回示例
{
"status": 200,
"data": {
"cpuusage": 17.611507415771484,
"infos": {
"Architecture": "64 位",
"Name": "Microsoft Windows 10 家庭版 SP0.0",
"Hardware": {
"CPUs": [
{
"Name": "Intel Core i5-1035G4 CPU @ 1.10GHz",
"Brand": "GenuineIntel",
"Architecture": "x64",
"Cores": 4,
"Frequency": 1498
}
],
"GPUs": [
{
"Name": "Intel(R) Iris(R) Graphics Family",
"Brand": "Intel(R) Iris(R) Plus Graphics",
"Resolution": "2736x1824",
"RefreshRate": 59,
"MemoryTotal": 1048576
}
],
"RAM": {
"Free": 1495924,
"Total": 7964852
}
},
"FrameworkVersion": {
"Major": 4,
"Minor": 0,
"Build": 30319,
"Revision": 42000,
"MajorRevision": 0,
"MinorRevision": -23536
},
"JavaVersion": {
"Major": 0,
"Minor": 0,
"Build": -1,
"Revision": -1,
"MajorRevision": -1,
"MinorRevision": -1
},
"OperatingSystemType": 4,
"IsMono": false
}
},
"time": 1678616591
}

获取网速

getnetspeed

// 返回示例
{
"status": 200,
"data": {
"upload": "4.3KB/s",
"download": "10.9KB/s"
},
"time": 1678616560
}

发送群聊消息

sendgroup

  • 子参数
    • target 群号
      • 类型:number
    • msg 消息内容
      • 类型:string
  • 未提供子参数返回406
  • WS未连接返回403

发送私聊消息

sendprivate

  • 子参数
    • target QQ号
      • 类型:number
    • msg 消息内容
      • 类型:string
  • 未提供子参数返回406
  • WS未连接返回403

发送数据包

sendpacket

  • 子参数
    • packet
      • 类型:string
  • 未提供子参数返回406
  • WS未连接返回403

绑定

bindmember

  • 子参数
    • userid QQ号
      • 类型:number
    • gameid 游戏ID
      • 类型:string
  • 未提供子参数返回406
  • 绑定失败返回403

解绑

unbindmember

  • 子参数
    • userid
      • 类型:number
  • 未提供子参数返回406
  • 解绑失败返回403

历史版本