InterConnectServer / docs /openapi.json
GitHub Actions
Sync from GitHub (excluding README)
6d43d9c
{
"openapi": "3.0.0",
"info": {
"title": "InterConnect-Server API",
"version": "1.0.0",
"description": "InterConnect-Server 是一个 Minecraft WebSocket API 服务器,提供 API Key 管理、事件广播、服务器命令等功能。\n\n权限说明:\n- **Admin Key**: `mc_admin_` 前缀,拥有完整管理权限。\n- **Regular Key**: `mc_key_` 前缀,可查看/管理关联的 Server Key,发送服务器命令。\n- **Server Key**: `mc_server_` 前缀,仅用于插件/Mod 配置,用于认证和事件上报。"
},
"servers": [
{
"url": "http://localhost:8000",
"description": "本地服务器"
}
],
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "API Key",
"description": "使用 API Key 进行认证 (Bearer Token)"
}
},
"schemas": {
"ApiKey": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"keyPrefix": {
"type": "string",
"enum": ["mc_admin_", "mc_key_", "mc_server_"]
},
"keyType": {
"type": "string",
"enum": ["admin", "regular", "server"]
},
"serverId": {
"type": "string",
"nullable": true
},
"regularKeyId": {
"type": "string",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"lastUsed": {
"type": "string",
"format": "date-time",
"nullable": true
},
"isActive": {
"type": "boolean"
}
}
},
"ApiKeyWithSecret": {
"allOf": [
{
"$ref": "#/components/schemas/ApiKey"
},
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "原始 API Key,仅在创建时返回一次"
}
}
}
]
},
"CreateKeyRequest": {
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"key_type": {
"type": "string",
"enum": ["regular", "admin"],
"default": "regular"
},
"server_id": {
"type": "string"
}
}
},
"CreateServerKeyRequest": {
"type": "object",
"required": ["name", "regular_key_id"],
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"server_id": {
"type": "string"
},
"regular_key_id": {
"type": "string",
"description": "关联的 Regular Key ID"
}
}
},
"Event": {
"type": "object",
"required": ["event_type", "server_name", "timestamp", "data"],
"properties": {
"event_type": {
"type": "string",
"description": "事件类型 (e.g., player_join, player_leave, message, ai_chat)"
},
"server_name": {
"type": "string"
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"data": {
"type": "object",
"description": "事件具体数据"
}
}
},
"CommandRequest": {
"type": "object",
"required": ["command"],
"properties": {
"command": {
"type": "string"
},
"server_id": {
"type": "string",
"description": "仅 Admin Key 需要/可以指定"
}
}
},
"AiConfig": {
"type": "object",
"properties": {
"apiUrl": {
"type": "string"
},
"modelId": {
"type": "string"
},
"apiKey": {
"type": "string",
"description": "部分隐藏的 API Key"
},
"enabled": {
"type": "boolean"
},
"systemPrompt": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"AiConfigUpdateRequest": {
"type": "object",
"properties": {
"api_url": {
"type": "string"
},
"model_id": {
"type": "string"
},
"api_key": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"system_prompt": {
"type": "string"
}
}
},
"AiChatRequest": {
"type": "object",
"required": ["message"],
"properties": {
"message": {
"type": "string"
},
"player_name": {
"type": "string"
},
"server_id": {
"type": "string"
}
}
},
"ErrorResponse": {
"type": "object",
"properties": {
"detail": {
"type": "string"
}
}
}
}
},
"paths": {
"/health": {
"get": {
"summary": "健康检查",
"description": "获取服务器状态和统计信息",
"security": [],
"responses": {
"200": {
"description": "服务器正常",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"active_ws": {
"type": "integer"
},
"keys_total": {
"type": "integer"
},
"admin_active": {
"type": "integer"
},
"server_active": {
"type": "integer"
},
"regular_active": {
"type": "integer"
}
}
}
}
}
}
}
}
},
"/manage/keys": {
"get": {
"summary": "获取所有 API Key",
"description": "获取所有 API Key 列表 (仅 Admin)",
"security": [
{
"bearerAuth": []
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ApiKey"
}
}
}
}
},
"403": {
"description": "权限不足",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
},
"post": {
"summary": "创建 API Key",
"description": "创建新的 Admin 或 Regular Key (创建 Regular Key 会自动附带一个 Server Key)",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateKeyRequest"
}
}
}
},
"responses": {
"201": {
"description": "创建成功",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/ApiKeyWithSecret"
},
{
"type": "object",
"properties": {
"regularKey": {
"$ref": "#/components/schemas/ApiKeyWithSecret"
},
"serverKey": {
"$ref": "#/components/schemas/ApiKeyWithSecret"
}
}
}
]
}
}
}
}
}
}
},
"/manage/keys/{key_id}": {
"get": {
"summary": "获取 API Key 详情",
"security": [
{
"bearerAuth": []
}
],
"parameters": [
{
"in": "path",
"name": "key_id",
"schema": {
"type": "string"
},
"required": true
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiKey"
}
}
}
},
"404": {
"description": "未找到",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
},
"delete": {
"summary": "删除 API Key",
"description": "仅 Admin 可操作,不能删除自己",
"security": [
{
"bearerAuth": []
}
],
"parameters": [
{
"in": "path",
"name": "key_id",
"schema": {
"type": "string"
},
"required": true
}
],
"responses": {
"204": {
"description": "删除成功"
},
"400": {
"description": "无法删除(如试图删除自己)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/manage/keys/{key_id}/activate": {
"patch": {
"summary": "激活 API Key",
"description": "Admin 可激活任意 Key,Regular 仅可激活关联的 Server Key",
"security": [
{
"bearerAuth": []
}
],
"parameters": [
{
"in": "path",
"name": "key_id",
"schema": {
"type": "string"
},
"required": true
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
},
"/manage/keys/{key_id}/deactivate": {
"patch": {
"summary": "停用 API Key",
"description": "Admin 可停用任意 Key,Regular 仅可停用关联的 Server Key",
"security": [
{
"bearerAuth": []
}
],
"parameters": [
{
"in": "path",
"name": "key_id",
"schema": {
"type": "string"
},
"required": true
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
},
"/manage/keys/server-keys": {
"get": {
"summary": "获取 Server Key 列表",
"description": "Admin 获取所有 Server Key,Regular 获取关联的 Server Key",
"security": [
{
"bearerAuth": []
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ApiKey"
}
}
}
}
}
}
},
"post": {
"summary": "创建 Server Key",
"description": "为指定的 Regular Key 创建新的 Server Key (仅 Admin,Regular Key 不能为自己创建)",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateServerKeyRequest"
}
}
}
},
"responses": {
"201": {
"description": "创建成功",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiKeyWithSecret"
}
}
}
},
"400": {
"description": "参数错误",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"404": {
"description": "Regular Key 不存在",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/api/events": {
"post": {
"summary": "发送事件",
"description": "发送 Minecraft 事件并广播给所有 WebSocket 连接",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Event"
}
}
}
},
"responses": {
"200": {
"description": "成功广播",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
},
"/api/server/info": {
"get": {
"summary": "获取服务器信息",
"security": [
{
"bearerAuth": []
}
],
"parameters": [
{
"in": "query",
"name": "server_id",
"schema": {
"type": "string"
},
"description": "仅 Admin 需要"
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"server_id": {
"type": "string"
},
"status": {
"type": "string"
},
"online_players": {
"type": "integer"
}
}
}
}
}
}
}
}
},
"/api/server/command": {
"post": {
"summary": "发送服务器命令",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CommandRequest"
}
}
}
},
"responses": {
"200": {
"description": "命令发送成功",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
}
}
}
},
"403": {
"description": "禁止的命令",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/api/ai/config": {
"get": {
"summary": "获取 AI 配置 (Admin)",
"security": [
{
"bearerAuth": []
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfig"
}
}
}
},
"404": {
"description": "配置不存在",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
},
"post": {
"summary": "创建 AI 配置 (Admin)",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfigUpdateRequest"
}
}
}
},
"responses": {
"201": {
"description": "创建成功",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfig"
}
}
}
}
}
},
"patch": {
"summary": "更新 AI 配置 (Admin)",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfigUpdateRequest"
}
}
}
},
"responses": {
"200": {
"description": "更新成功",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfig"
}
}
}
}
}
},
"delete": {
"summary": "删除 AI 配置 (Admin)",
"security": [
{
"bearerAuth": []
}
],
"responses": {
"204": {
"description": "删除成功"
}
}
}
},
"/api/ai/config/test": {
"post": {
"summary": "测试 AI 连接 (Admin)",
"security": [
{
"bearerAuth": []
}
],
"responses": {
"200": {
"description": "连接成功",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"message": {
"type": "string"
},
"model": {
"type": "string"
},
"response": {
"type": "string"
}
}
}
}
}
}
}
}
},
"/api/ai/chat": {
"post": {
"summary": "AI 聊天",
"description": "发送消息给 AI 并获取回复",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiChatRequest"
}
}
}
},
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"reply": {
"type": "string"
},
"model": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"prompt_tokens": {
"type": "integer"
},
"completion_tokens": {
"type": "integer"
},
"total_tokens": {
"type": "integer"
}
}
}
}
}
}
}
},
"403": {
"description": "AI 功能已禁用",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"404": {
"description": "AI 配置不存在",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
}
}
}