mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-08-12 14:21:01 +00:00
feat(panel): in-panel API documentation page
New /panel/api-docs route with a one-page reference covering every /panel/api/* endpoint (Auth, Inbounds, Server, Nodes, Custom Geo, Backup) plus a Bearer-token primer that reads the current token and exposes Show/Copy/Regenerate inline. Sidebar gets an API Docs entry right after Xray; the menu label is shared via menu.apiDocs across all 13 locales.
This commit is contained in:
@@ -36,6 +36,7 @@ func (a *XUIController) initRouter(g *gin.RouterGroup) {
|
||||
g.GET("/nodes", a.nodes)
|
||||
g.GET("/settings", a.settings)
|
||||
g.GET("/xray", a.xraySettings)
|
||||
g.GET("/api-docs", a.apiDocs)
|
||||
|
||||
// SPA pages built by Vite don't have a server-rendered <meta name="csrf-token">,
|
||||
// so they fetch the session token via this endpoint at startup and replay it
|
||||
@@ -76,6 +77,11 @@ func (a *XUIController) xraySettings(c *gin.Context) {
|
||||
serveDistPage(c, "xray.html")
|
||||
}
|
||||
|
||||
// apiDocs renders the in-panel API documentation page.
|
||||
func (a *XUIController) apiDocs(c *gin.Context) {
|
||||
serveDistPage(c, "api-docs.html")
|
||||
}
|
||||
|
||||
// csrfToken returns the session CSRF token to authenticated SPA clients.
|
||||
// The endpoint is GET (a safe method) so it bypasses CSRFMiddleware itself,
|
||||
// but checkLogin still gates the response — anonymous callers get 401/redirect.
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "النودز",
|
||||
"settings": "إعدادات البانل",
|
||||
"xray": "إعدادات Xray",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "تسجيل خروج",
|
||||
"link": "إدارة"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "Nodes",
|
||||
"settings": "Panel Settings",
|
||||
"xray": "Xray Configs",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "Log Out",
|
||||
"link": "Manage"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "Nodos",
|
||||
"settings": "Configuraciones",
|
||||
"xray": "Ajustes Xray",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "Cerrar Sesión",
|
||||
"link": "Gestionar"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "نودها",
|
||||
"settings": "تنظیمات پنل",
|
||||
"xray": "پیکربندی ایکسری",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "خروج",
|
||||
"link": "مدیریت"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "Node",
|
||||
"settings": "Pengaturan Panel",
|
||||
"xray": "Konfigurasi Xray",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "Keluar",
|
||||
"link": "Kelola"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "ノード",
|
||||
"settings": "パネル設定",
|
||||
"xray": "Xray設定",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "ログアウト",
|
||||
"link": "リンク管理"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "Nós",
|
||||
"settings": "Panel Settings",
|
||||
"xray": "Xray Configs",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "Sair",
|
||||
"link": "Gerenciar"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "Узлы",
|
||||
"settings": "Настройки",
|
||||
"xray": "Настройки Xray",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "Выход",
|
||||
"link": "Управление"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "Düğümler",
|
||||
"settings": "Panel Ayarları",
|
||||
"xray": "Xray Yapılandırmaları",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "Çıkış Yap",
|
||||
"link": "Yönet"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "Вузли",
|
||||
"settings": "Параметри панелі",
|
||||
"xray": "Конфігурації Xray",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "Вийти",
|
||||
"link": "Керувати"
|
||||
},
|
||||
|
||||
@@ -98,6 +98,7 @@
|
||||
"settings": "Cài đặt bảng điều khiển",
|
||||
"logout": "Đăng xuất",
|
||||
"xray": "Cài đặt Xray",
|
||||
"apiDocs": "API Docs",
|
||||
"link": "Quản lý"
|
||||
},
|
||||
"pages": {
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "节点",
|
||||
"settings": "面板设置",
|
||||
"xray": "Xray 设置",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "退出登录",
|
||||
"link": "管理"
|
||||
},
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
"nodes": "節點",
|
||||
"settings": "面板設定",
|
||||
"xray": "Xray 設定",
|
||||
"apiDocs": "API Docs",
|
||||
"logout": "退出登入",
|
||||
"link": "管理"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user