# 服务器接口

# 分类


# 1. 常规


  • /api/server

使用方法:

GET /api/server

响应数据:

{
    <h1>Welcome to PCSMT2 Server API!</h1>
}

# 2. 操作


  • /api/server/{ServerName}/start 这个接口用于启动服务器。

请求参数:

  • ServerName: 服务器名称 -> str

使用方法:

POST /api/server/{ServerName}/start

响应数据:

{
    "status": "starting"
}

  • /api/server/{ServerName}/stop 这个接口用于停止服务器。

请求参数:

  • ServerName: 服务器名称 -> str

使用方法:

POST /api/server/{ServerName}/stop

响应数据:

{
    "status": "stopped"
}

  • /api/server/delete/{ServerName} 这个接口用于删除服务器。

请求参数:

  • ServerName: 服务器名称 -> str

使用方法:

POST /api/server/delete/{ServerName}

响应数据:

{
    "status": "deleted"
}

  • /api/server/{ServerName}/command 这个接口用于向服务器发送命令。

请求参数:

  • ServerName: 服务器名称 -> str
  • command: 命令 -> str

使用方法:

POST /api/server/{ServerName}/command

请求数据:

{
    "command": "say hello"
}

响应数据:

执行成功

{
    "success": true,
    "message": result//执行结果
}

执行失败

{
    "success": false,
    "message": "服务器未启动"
}

# 3. 获取


  • /api/server/list 这个接口用于获取服务器列表。

获取到的数据:

  • serverlist: 服务器列表 -> list
  • serverCount: 服务器数量 -> int

使用方法:

GET /api/server/list

响应数据:

{
    "serverlist": ['server1', 'server2', 'server3'],
    "serverCount": 3
}

  • /api/server/players/{ServerName} 这个接口用于获取服务器玩家列表。

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • server: 服务器名称 -> str
  • players: 玩家列表 -> list

使用方法:

GET /api/server/players/{ServerName}

响应数据:

有玩家在线

{
    "server": "server1",
    "players": ['Alex', 'Steve']
}

没有玩家在线

{
    "server": "server1",
    "players": "None"
}

  • /api/server/info/{ServerName} 这个接口用于获取服务器信息。

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • version: 服务器版本 -> str
  • size: 服务器大小 -> str
  • startCount: 服务器启动次数 -> int
  • LastStartedTime: 服务器上次启动时间 -> str

使用方法:

GET /api/server/info/{ServerName}

响应数据:

{
    "version": "1.20.1",
    "size": "1.2GB",
    "startCount": 10,
    "LastStartedTime": "2023/08/01/12:00:00"
}

  • /api/server/latest 这个接口用于获取最新的服务器信息。

获取到的数据:

  • name: 服务器名称 -> str
  • version: 服务器版本 -> str
  • size: 服务器大小 -> str
  • startCount: 服务器启动次数 -> int
  • LastStartedTime: 服务器上次启动时间 -> str

使用方法:

GET /api/server/latest

响应数据:

{
    "name": "server1",
    "version": "1.21.1",
    "size": "1.3GB",
    "startCount": 11,
    "LastStartedTime": "2023/08/02/13:00:00"
}

  • /api/server/status/{ServerName} 这个接口用于获取服务器状态。

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • status: 服务器状态 -> str
  • message: 提示信息 -> str

使用方法:

GET /api/server/status/{ServerName}

响应数据:

已启动

{
    "status": "starting",
    "message": "服务器已启动"
}

未启动

{
    "status": "stopped",
    "message": "服务器未启动"
}

  • /api/server/{ServerName}/storage_info 这个接口用于获取服务器存储信息。

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • title: 图表标题 -> str
  • labels: 日期列表 -> list
  • values: 存储大小列表 -> list
  • type: 存储单位 -> str

使用方法:

GET /api/server/{ServerName}/storage_info

响应数据:

{
    "title": "server1服务器存储情况",
    "labels": ["2025年6月11日", "2025年6月12日"," 2025年6月13日", "2025年6月14日", "2025年6月15日", "2025年6月16日", "2025年6月17日", "2025年6月18日", "2025年6月19日", "2025年6月20日"],
    "values": ['13.43', '13.44', '13.45', '13.47', '14.43', '15.12', '16.47', '18.44', '19.43', '20.43'],
    "type": "GB"
}

  • /api/server/get/document/server.properties/{ServerName} 这个接口用于获取服务器配置文件。

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • server-port: 服务器端口 -> int
  • gamemode: 游戏模式 -> str
  • difficulty: 难度 -> str
  • max-players: 最大玩家数 -> int
  • max-world-size: 最大世界大小 -> int
  • spawn-protection: 生成保护 -> int
  • spawn-animals: 是否生成动物 -> bool
  • pvp: 是否开启PVP -> bool
  • allow-flight: 是否允许飞行 -> bool
  • enable-command-block: 是否启用命令块 -> bool
  • white-list: 是否启用白名单 -> bool
  • online-mode: 是否开启在线模式 -> bool
  • hardcore: 是否开启硬core模式 -> bool

使用方法:

GET /api/server/get/document/server.properties/{ServerName}

响应数据:

{
    "server-port": 25565,
    "gamemode": "survival",
    "difficulty": "normal",
    "max-players": 100,
    "max-world-size": 29999984,
    "spawn-protection": 12,
    "spawn-animals": true,
    "pvp": true,
    "allow-flight": true,
    "enable-command-block": true,
    "white-list": true,
    "online-mode": true,
    "hardcore": false,
}

  • /api/server/get/run_memory/{ServerName} 这个接口用于获取服务器运行内存。

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • min: 最小内存 -> int
  • max: 最大内存 -> int

TIP

单位: MB

使用方法:

GET /api/server/get/run_memory/{ServerName}

响应数据:

{
    "min": 2048,
    "max": 16384,
}

  • /api/server/terminal/{ServerName} 这个接口用于获取服务器终端日志。

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • logs: 终端日志 -> str

使用方法:

GET /api/server/terminal/{ServerName}

响应数据:

{
    "logs": "[00:10:57] [RCON Listener #1/INFO]: Thread RCON Client /127.0.0.1 started
             [00:10:58] [RCON Listener #1/INFO]: Thread RCON Client /127.0.0.1 shutting down"
}

WARNING

logs参数获取的是字符串, 不是数组,列表,字典


  • /api/server/get/banned/players/{ServerName} 这个接口用于获取服务器封禁玩家列表。

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • success: 是否成功 -> bool
  • message: 提示信息 -> str
  • BannedPlayerList: 封禁玩家列表 -> list

使用方法:

GET /api/server/get/banned/players/{ServerName}

响应数据:

{
    "success": True,
    "message": "获取封禁玩家列表成功",
    "BannedPlayerList": ['Alex', 'Steve']
}

  • /api/server/get/white-list/{ServerName} 这个接口用于获取服务器白名单玩家列表。

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • success: 是否成功 -> bool
  • message: 提示信息 -> str
  • WhiteListPlayerList: 白名单玩家列表 -> list

使用方法:

GET /api/server/get/white-list/{ServerName}

响应数据:

已经启用白名单

{
    "success": True,
    "message": "获取白名单玩家列表成功",
    "WhiteListPlayerList": ['Alex', 'Steve']
}

未启用白名单

{
    "success": False,
    "message": "未启用白名单"
}

  • /api/server/get/history/players/{ServerName} 这个接口用于获取服务器历史玩家列表.

TIP

这个接口只能获取到服务器启动以来的玩家列表, 不能获取到服务器关闭以来的玩家列表。 不能获取在线玩家列表

请求参数:

  • ServerName: 服务器名称 -> str

获取到的数据:

  • success: 是否成功 -> bool
  • message: 提示信息 -> str
  • HistoryPlayerList: 历史玩家列表 -> list

使用方法:

GET /api/server/get/history/players/{ServerName}

响应数据:

有历史玩家

{
    "success": true,
    "message": "获取历史玩家列表成功",
    "HistoryPlayerList": ['Alex', 'Steve']
}

无历史玩家

{
    "success": false,
    "message": "无历史玩家",
}

# 4. 设置


  • /api/server/set/settings/{ServerName} 这个接口用于设置服务器配置.

TIP

注意: 这个接口只能设置服务器的配置, 不能设置服务器的运行状态.

请求参数:

  • ServerName: 服务器名称 -> str
  • server-port: 服务器端口 -> int
  • gamemode: 游戏模式 -> str
  • difficulty: 难度 -> str
  • max-players: 最大玩家数 -> int
  • max-world-size: 最大世界大小 -> int
  • spawn-protection: 生成保护 -> int
  • spawn-animals: 是否生成动物 -> bool
  • pvp: 是否开启PVP -> bool
  • allow-flight: 是否允许飞行 -> bool
  • enable-command-block: 是否启用命令块 -> bool
  • white-list: 是否启用白名单 -> bool
  • online-mode: 是否开启在线模式 -> bool
  • hardcore: 是否开启硬core模式 -> bool

获取到的数据:

  • success: 是否成功 -> bool
  • message: 提示信息 -> str

使用方法:

POST /api/server/set/settings/{ServerName}

请求数据:

{
    "server-port": 25565,
    "gamemode": "survival",
    "difficulty": "normal",
    "max-players": 100,
    "max-world-size": 29999984,
    "spawn-protection": 12,
    "spawn-animals": true,
    "pvp": true,
    "allow-flight": true,
    "enable-command-block": true,
    "white-list": true,
    "online-mode": true,
    "hardcore": false,
}

响应数据:

{
    "message": "修改成功"
}