REST API文档

菜单管理

主菜单

菜单信息说明如下:

参数说明
k菜单名称
v菜单值
leaf_flag
sort排序

获取菜单列表

  • 请求 URL: /api/system_modules 返回所有主菜单

  • 请求 URL: /api/system_modules/$id 返回指定 ID 的菜单信息

  • 请求方式: GET

  • 返回值: 费率 JSON 对象,如果找不到会返回 HTTP 状态码404

  • curl 示例:

curl -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" http://192.168.1.100:8081/api/system_modules
  • 返回值
[
	{
		"sort": 2,
		"module_no": "",
		"module_id": 6,
		"created_by": "system",
		"description": "",
		"updated_at": "2023-03-23 06:25:24",
		"created_at": "2023-03-23 06:25:24",
		"leaf_flag": 1,
		"v": "SMENUS_SYSTEM_SETTINGS",
		"id": 8,
		"level": 1,
		"k": "System",
		"icon": "ProfileOutlined"
	},
	{
		"sort": 6,
		"module_no": "",
		"module_id": 6,
		"created_by": "system",
		"description": "",
		"updated_at": "2023-03-23 06:25:24",
		"created_at": "2023-03-23 06:25:24",
		"leaf_flag": 1,
		"v": "SMENUS_Modules",
		"id": 12,
		"level": 1,
		"k": "Modules Configuration",
		"icon": "DatabaseOutlined"
	},
	{
		"sort": 2,
		"module_no": "2",
		"module_id": 0,
		"created_by": "system",
		"description": "",
		"updated_at": "2023-03-23 06:25:24",
		"created_at": "2023-03-23 06:25:24",
		"leaf_flag": 1,
		"v": "SMENUS_CALL",
		"id": 2,
		"level": 0,
		"k": "Call",
		"icon": "PhoneOutlined"
	},
	...
	{
		"sort": 9,
		"module_no": "13",
		"module_id": 0,
		"created_by": "system",
		"description": "",
		"updated_at": "2023-03-23 06:25:24",
		"created_at": "2023-03-23 06:25:24",
		"leaf_flag": 1,
		"v": "SMENUS_SYSTEM_STATUS",
		"id": 13,
		"level": 0,
		"k": "Status",
		"icon": "ProfileOutlined"
	}
]

获取所有菜单

  • 请求 URL: /api/system_modules/build_module_tree
  • 请求方式: GET
  • 消息头: Content-Type: application/json
  • Body 信息: 无
  • 返回示例:
[
	{
		"id": "1",
		"leaf_flag": "1",
		"k": "User",
		"module_no": "1",
		"v": "SMENUS_USERS",
		"icon": "UserOutlined",
		"description": "",
		"spaces": "",
		"module_id": "",
		"sort": "1",
		"level": "0"
	},
	{
		"id": "13",
		"leaf_flag": "1",
		"k": "Security",
		"module_no": "",
		"v": "SMENUS_SYSTEM_SAFE",
		"icon": "SafetyOutlined",
		"description": "",
		"spaces": "",
		"module_id": "",
		"sort": "2",
		"level": "0"
	},
	{
		"id": "2",
		"leaf_flag": "1",
		"k": "Call",
		"module_no": "2",
		"v": "SMENUS_CALL",
		"icon": "PhoneOutlined",
		"description": "",
		"spaces": "",
		"module_id": "",
		"sort": "2",
		"level": "0"
	}
	...
]

获取未关联主菜单的数据

  • 请求 URL: /api/system_modules/remain_root_modules
  • 请求方式: GET
  • 消息头: Content-Type: application/json
  • Body 信息: 无
  • 返回示例:
[]

获取指定领域下未关联的子菜单数据

  • 请求 URL: /api/system_modules/remain_sub_modules/:realm
  • 请求方式: GET
  • 消息头: Content-Type: application/json
  • Body 信息: 无
  • 示例 GET /api/system_modules/remain_sub_modules/REALMS
  • 返回示例:
[
	{
		"k": "XUI",
		"d": "XUI相关的配置顶",
		"v": "XUI Params",
		"realm": "REALMS",
		"id": "2"
	},
	{
		"k": "USERTYPE",
		"d": "用户类型",
		"v": "User Type",
		"realm": "REALMS",
		"id": "3"
	}
	...
]

创建主菜单

  • 请求 URL: /api/system_modules
  • 请求方式: POST
  • 消息头: Content-Type: application/json
  • Body 信息:
{
  "module_no": "1",
  "k": "XUI",
  "v": "XUI Params",
  "description": "XUI相关的配置顶",
  "sort": "1",
  "icon": "SettingOutlined"
}
  • curl 示例: POST /api/system_modules

  • 返回示例:

{
	"message": "success",
	"data": 16,
	"code": 200
}

删除主菜单

  • 请求 URL: /api/system_modules/:id

  • 请求方式: DELETE

  • 消息头: Content-Type: application/json

  • Body 信息: 无

  • curl 示例: DELETE /api/system_modules/16

  • 返回示例:

{
	"message": "success",
	"code": 200,
	"data": "16"
}

修改主菜单

  • 请求 URL: /api/system_modules/$id
  • 请求方式: PUT
  • 消息头: Content-Type: application/json
  • Body 信息:
{
  "sort": "2"
}
  • curl 示例:
curl -XPUT -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" \
-H "Content-Type: application/json" \
-d '{"sort": "2"}' \
http://192.168.1.100:8081/api/system_modules/1
  • 返回值:
{
  "code": 200,
  "data": "1",
  "message": "success"
}

子菜单

菜单信息说明如下:

参数说明
k子菜单名称
status_flag子菜单状态,0-无效 1-有效
url菜单路径
mod_id所属模块 ID

获取所有子菜单

  • 请求 URL: /api/system_menus 返回所有子菜单

  • 请求 URL: /api/system_menus/$id 返回指定 ID 的子菜单信息

  • 请求方式: GET

  • 返回值: 如果找不到会返回 HTTP 状态码404

  • curl 示例:

curl -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" http://192.168.1.100:8081/api/system_menus
  • 返回值
{
	"data": [
		{
			"enable_shortcut": "1",
			"k": "CDRs",
			"description": "",
			"id": "31",
			"mod_id": "5",
			"sort": "1",
			"status_flag": "1",
			"module_id": "5",
			"url": "/settings/cdrs",
			"created_at": "2023-03-23 06:25:24",
			"icon": "NumberOutlined",
			"mod_k": "CDR"
		},
		...
		{
			"enable_shortcut": "0",
			"k": "Call Limit Group",
			"description": "",
			"id": "14",
			"mod_id": "2",
			"sort": "14",
			"status_flag": "1",
			"module_id": "2",
			"url": "/settings/call_limit_groups",
			"created_at": "2023-03-23 06:25:24",
			"icon": "HddOutlined",
			"mod_k": "Call"
		}
	]
}

修改子菜单

  • 请求 URL: /api/system_menus/$id
  • 请求方式: PUT
  • 消息头: Content-Type: application/json
  • Body 信息:
{
  "sort": "2",
  "status_flag": "0"
}
  • curl 示例:
curl -XPUT -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" \
-H "Content-Type: application/json" \
-d '{"sort": "2","status_flag": "0"}' \
http://192.168.1.100:8081/api/system_menus/1
  • 返回值:
{
  "code": 200,
  "data": "1",
  "message": "success"
}

获取所有属于指定域的子菜单

  • 请求 URL: /api/system_menus/remain_module_menus/:module_v

  • 请求方式: GET

  • 消息头: 无

  • 示例: GET /api/system_menus/remain_module_menus/REALMS

  • 返回值:

[
	{
		"v": "/settings/departments",
		"id": "55",
		"realm": "REALMS",
		"d": "",
		"k": "/settings/departments"
	},
	{
		"v": "/settings/aliyun",
		"id": "70",
		"realm": "REALMS",
		"d": "",
		"k": "/settings/aliyun"
	},
	{
		"v": "/settings/devices",
		"id": "76",
		"realm": "REALMS",
		"d": "",
		"k": "/settings/devices"
	},
	{
		"v": "/settings/bill_rates",
		"id": "84",
		"realm": "REALMS",
		"d": "",
		"k": "/settings/bill_rates"
	},
	{
		"v": "/settings/mcasts",
		"id": "87",
		"realm": "REALMS",
		"d": "",
		"k": "/settings/mcasts"
	}
]

获取所有子菜单

  • 请求 URL: /api/system_menus/module_menus/:module_id

  • 请求方式: GET

  • 消息头: 无

  • 示例: GET /api/system_menus/module_menus/1

  • 返回值:

[
	{
		"created_by": "system",
		"updated_at": "2025-08-19 08:52:11",
		"created_at": "2025-08-19 08:52:11",
		"sort": 1,
		"enable_shortcut": 0,
		"status_flag": 1,
		"icon": "UserOutlined",
		"description": "",
		"module_id": 1,
		"k": "Users",
		"id": 29,
		"url": "/settings/users"
	},
	{
		"created_by": "system",
		"updated_at": "2025-08-19 08:52:11",
		"created_at": "2025-08-19 08:52:11",
		"sort": 2,
		"enable_shortcut": 0,
		"status_flag": 1,
		"icon": "UserOutlined",
		"description": "",
		"module_id": 1,
		"k": "Extensions",
		"id": 30,
		"url": "/settings/extensions"
	}
	...
]

获取子菜单的详细信息

  • 请求 URL: /api/system_menus/:id

  • 请求方式: GET

  • 消息头: 无

  • 示例: GET /api/system_menus/1

  • 返回值:

{
	"mod_k": "Call",
	"id": "1",
	"url": "/settings/routes",
	"status_flag": "1",
	"sort": "1",
	"module_id": "2",
	"mod_id": "2",
	"created_at": "2025-08-19 08:52:11",
	"description": "",
	"k": "Routes"
}

创建子菜单

  • 请求 URL/api/system_menus
  • 请求方式POST
  • 消息头: 无
  • 示例 POST /api/system_menus
  • Body 信息: 对象,包含子菜单的详细信息
{
  "module_id": "2",
  "system_menus": [
    {
      "menu": {
        "k": "TEXT1",
        "v": "/settings/text1"
      }
    },
    {
      "menu": {
        "k": "TEXT2",
        "v": "/settings/text2"
      }
    }
  ]
}
  • 返回值
[]

删除子菜单

  • 请求 URL/api/system_menus/$id

  • 请求方式DELETE

  • 消息头: 无

  • 返回值: 对象,包含被删除的 ID

  • 示例

  • curl 示例

curl -0 -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" -XDELETE "192.168.1.100:8081/api/system_menus/1"

返回:

{
  "code": 200,
  "message": "success",
  "data": "1"
}

获取菜单按钮列表

按照realm获取菜单按钮列表

  • 请求 URL/api/system_buttons/remain_menu_buttons/realm?realm=REALMS
  • 请求方式GET
  • 消息头: 无
  • 返回值: 数组,包含菜单按钮的详细信息
  • 示例 GET /api/system_buttons/remain_menu_buttons/REALMS?realm=REALMS
  • 返回值
[
	{
		"v": "XUI Params",
		"d": "XUI相关的配置顶",
		"id": "2",
		"k": "XUI",
		"realm": "REALMS"
	},
	{
		"v": "User Type",
		"d": "用户类型",
		"id": "3",
		"k": "USERTYPE",
		"realm": "REALMS"
	}
	...
]

获取子菜单下的全部菜单按钮详情

  • 请求 URL/api/system_buttons/menu_buttons/:menu_id
  • 请求方式GET
  • 消息头: 无
  • 返回值: 对象,包含菜单按钮的详细信息
  • 示例 GET /api/system_buttons/menu_buttons/1
  • 返回值
[
	{
		"updated_at": "2025-08-19 08:52:11",
		"created_by": "system",
		"button_no": "routes_new",
		"status_flag": 1,
		"description": "",
		"k": "New Route",
		"created_at": "2025-08-19 08:52:11",
		"id": 30,
		"menu_id": 1
	},
	{
		"updated_at": "2025-08-19 08:52:11",
		"created_by": "system",
		"button_no": "routes_get",
		"status_flag": 1,
		"description": "",
		"k": "Get Route",
		"created_at": "2025-08-19 08:52:11",
		"id": 31,
		"menu_id": 1
	}	
	...
]

创建菜单按钮

  • 请求 URL/api/system_buttons
  • 请求方式POST
  • 消息头: 无
  • 示例 POST /api/system_buttons
  • Body 信息
{
  "menu_id": "2",
  "system_buttons": [
    {
      "button": {
        "k": "TEXT1",
        "v": "gateways_text1"
      }
    },
    {
      "button": {
        "k": "TEXT2",
        "v": "gateways_text2"
      }
    }
  ]
}
  • 返回值
[]

删除子菜单和菜单下的全部菜单按钮

  • 请求 URL/api/system_buttons/menu_buttons/:menu_id
  • 请求方式DELETE
  • 消息头: 无
  • 示例 DELETE /api/system_buttons/menu_buttons/1
  • 返回值
[]

删除子菜单下指定菜单按钮

  • 请求 URL/api/system_buttons/$id

  • 请求方式DELETE

  • 消息头: 无

  • 返回值: 对象,包含被删除的 ID

  • 示例

  • curl 示例

curl -0 -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" -XDELETE "192.168.1.100:8081/api/system_buttons/300"

返回:

{
  "code": 200,
  "message": "success",
  "data": "300"
}

根据ID获取菜单按钮详情

  • 请求 URL/api/system_buttons/:id
  • 请求方式GET
  • 消息头: 无
  • 返回值: 对象,包含菜单按钮的详细信息
  • 示例 GET /api/system_buttons/2
  • 返回值
{
	"description": "",
	"k": "Get User",
	"button_no": "users_get",
	"status_flag": 1,
	"updated_at": "2025-08-19 08:52:11",
	"created_by": "system",
	"menu_id": 29,
	"created_at": "2025-08-19 08:52:11",
	"id": 2
}
高级配置-计费管理