You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

api.md 10 kB

6 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  1. # 前端接口
  2. `POST /api/portal/auth/login`
  3. 校验用户登录信息的接口,is_ldap=0表示不使用LDAP账号验证,is_ldap=1表示使用LDAP账号验证
  4. ```
  5. {
  6. "username": "",
  7. "password": "",
  8. "is_ldap": 0
  9. }
  10. ```
  11. ---
  12. `GET /api/portal/auth/logout`
  13. 退出当前账号,如果请求成功,前端需要跳转到登录页面
  14. ---
  15. `GET /api/portal/self/profile`
  16. 获取个人信息,可以用此接口校验用户是否登录了
  17. ---
  18. `PUT /api/portal/self/profile`
  19. 更新个人信息
  20. ```
  21. {
  22. "dispname": "",
  23. "phone": "",
  24. "email": "",
  25. "im": ""
  26. }
  27. ```
  28. ---
  29. `PUT /api/portal/self/password`
  30. 更新个人密码,新密码输入两次做校验,在前端完成
  31. ```
  32. {
  33. "oldpass": "",
  34. "newpass": ""
  35. }
  36. ```
  37. ---
  38. `GET /api/portal/user`
  39. 获取用户列表,支持搜索,搜索条件参数是query,每页显示条数是limit,页码是p,如果当前用户是root,则展示相关操作按钮,如果不是,则所有按钮不展示,只是查看
  40. ---
  41. `POST /api/portal/user`
  42. root账号新增一个用户,is_root字段表示新增的这个用户是否是个root
  43. ```
  44. {
  45. "username": "",
  46. "password": "",
  47. "dispname": "",
  48. "phone": "",
  49. "email": "",
  50. "im": "",
  51. "is_root": 0
  52. }
  53. ```
  54. ---
  55. `GET /api/portal/user/:id/profile`
  56. 获取某个人的信息
  57. ---
  58. `PUT /api/portal/user/:id/profile`
  59. root账号修改某人的信息
  60. ```
  61. {
  62. "dispname": "",
  63. "phone": "",
  64. "email": "",
  65. "im": "",
  66. "is_root": 0
  67. }
  68. ```
  69. ---
  70. `PUT /api/portal/user/:id/password`
  71. root账号重置某人的密码,输入两次新密码保证一致的校验由前端来做
  72. ```
  73. {
  74. "password": ""
  75. }
  76. ```
  77. ---
  78. `DELETE /api/portal/user/:id`
  79. root账号来删除某个用户
  80. ---
  81. `GET /api/portal/team`
  82. 获取团队列表,支持搜索,搜索条件参数是query,每页显示条数是limit,页码是p
  83. ---
  84. `POST /api/portal/team`
  85. 创建团队,mgmt=0表示成员管理制,mgmt=1表示管理员管理制,admins是团队管理员的id列表,members是团队普通成员的id列表
  86. ```
  87. {
  88. "ident": "",
  89. "name": "",
  90. "mgmt: 0,
  91. "admins": [],
  92. "members": []
  93. }
  94. ```
  95. ---
  96. `PUT /api/portal/team/:id`
  97. 修改团队信息
  98. ```
  99. {
  100. "ident": "",
  101. "name": "",
  102. "mgmt: 0,
  103. "admins": [],
  104. "members": []
  105. }
  106. ```
  107. ---
  108. `DELETE /api/portal/team/:id`
  109. 删除团队
  110. ---
  111. `GET /api/portal/endpoint`
  112. 获取endpoint列表,用于【服务树】-【对象列表】页面,该页展示endpoint列表,搜索条件参数是query,每页显示条数是limit,页码是p,如果要做批量筛选,则同时要指定用哪个字段(参数名字是field)来筛选,只支持ident和alias,批量筛选的内容是batch,即batch和field一般是同时出现的
  113. ---
  114. `POST /api/portal/endpoint`
  115. 导入endpoint,要求传入列表,每一条是ident::alias拼接在一起
  116. ```
  117. {
  118. "endpoints": []
  119. }
  120. ```
  121. ---
  122. `PUT /api/portal/endpoint/:id`
  123. 修改一个endpoint的alias信息
  124. ```
  125. {
  126. "alias": ""
  127. }
  128. ```
  129. ---
  130. `DELETE /api/portal/endpoint`
  131. 删除多个endpoint,ids参数放到request body里
  132. ```
  133. {
  134. "ids": [10000, 200000]
  135. }
  136. ```
  137. ---
  138. `GET /api/portal/endpoints/bindings`
  139. 查询endpoint的绑定关系,QueryString:idents,逗号分隔多个
  140. ---
  141. `GET /api/portal/endpoints/bynodeids`
  142. 根据节点id查询挂载了哪些endpoint,QueryString:ids,逗号分隔的多个节点id
  143. ---
  144. `GET /api/portal/tree`
  145. 查询整颗服务树
  146. ---
  147. `GET /api/portal/tree/search`
  148. 根据节点路径(path)查询服务树子树
  149. ---
  150. `POST /api/portal/node`
  151. 创建服务树节点,pid表示父节点id,leaf=0表示非叶子节点,leaf=1表示叶子节点,note是备注信息
  152. ```
  153. {
  154. "pid": 0,
  155. "name": "",
  156. "leaf": 0,
  157. "note": ""
  158. }
  159. ```
  160. ---
  161. `PUT /api/portal/node/:id/name`
  162. 服务树节点改名
  163. ```
  164. {
  165. "name": ""
  166. }
  167. ```
  168. ---
  169. `DELETE /api/portal/node/:id`
  170. 删除服务树节点
  171. ---
  172. `GET /api/portal/node/:id/endpoint`
  173. 获取节点下面的endpoint列表,查询字符串使用query,每页展示多少条使用limit,页码使用p,如要批量筛选,一行一个,使用batch,同时必须指定field,即使用哪个字段进行批量筛选,有ident和alias可选
  174. ---
  175. `POST /api/portal/node/:id/endpoint-bind`
  176. 绑定一批endpoint到当前节点,del_old=1表示同时删除老的挂载关系
  177. ```
  178. {
  179. "idents": [],
  180. "del_old": 0
  181. }
  182. ```
  183. ---
  184. `POST /api/portal/node/:id/endpoint-unbind`
  185. 解绑endpoint和节点的挂载关系
  186. ```
  187. {
  188. "idents": []
  189. }
  190. ```
  191. ---
  192. `GET /api/portal/nodes/search`
  193. 搜索节点,limit表示最多返回多少条,query是搜索条件
  194. ---
  195. `GET /api/portal/nodes/leafids`
  196. 获取节点对应的叶子节点的id,参数是ids,逗号分隔的多个节点id
  197. ---
  198. `GET /api/portal/nodes/pids`
  199. 获取节点对应的父、祖节点的id,参数是ids,逗号分隔的多个节点id
  200. ---
  201. `GET /api/portal/nodes/byids`
  202. 查询节点的信息,参数是ids,逗号分隔的多个节点id,返回这多个节点的信息
  203. ---
  204. `GET /api/portal/node/:id/maskconf`
  205. 获取报警屏蔽列表,因为已经是某个节点下的了,量比较少,后端不分页
  206. ---
  207. `POST /api/portal/maskconf`
  208. 创建一个报警屏蔽策略
  209. ```
  210. {
  211. "nid": 0,
  212. "endpoints": [],
  213. "metric": "",
  214. "tags": "",
  215. "cause": "",
  216. "btime": 1563838361,
  217. "etime": 1563838461
  218. }
  219. ```
  220. ---
  221. `PUT /api/portal/maskconf/:id`
  222. 修改一个报警屏蔽策略
  223. ```
  224. {
  225. "endpoints": [],
  226. "metric": "",
  227. "tags": "",
  228. "cause": "",
  229. "btime": 1563838361,
  230. "etime": 1563838461
  231. }
  232. ```
  233. ---
  234. `DELETE /api/portal/maskconf/:id`
  235. 删除一个报警屏蔽策略
  236. ---
  237. `GET /api/portal/node/:id/screen`
  238. 获取screen列表,因为已经是某个节点下的了,量比较少,后端不分页
  239. ---
  240. `POST /api/portal/node/:id/screen`
  241. 创建screen
  242. ```
  243. {
  244. "name": ""
  245. }
  246. ```
  247. ---
  248. `PUT /api/portal/screen/:id`
  249. 修改screen,其中node_id顺带也可以修改,这样screen相当于直接挪动了挂载节点
  250. ```
  251. {
  252. "name": "",
  253. "node_id": 0
  254. }
  255. ```
  256. ---
  257. `DELETE /api/portal/screen/:id`
  258. 删除某个screen
  259. ---
  260. `GET /api/portal/screen/:id/subclass`
  261. 获取screen下面的子类,返回的subclass按照weight字段排序
  262. ---
  263. `POST /api/portal/screen/:id/subclass`
  264. 创建subclass
  265. ```
  266. {
  267. "name": "",
  268. "weight": 0
  269. }
  270. ```
  271. ---
  272. `PUT /api/portal/subclass`
  273. 批量修改subclass
  274. ```
  275. [
  276. {
  277. "id": 1,
  278. "name": "a",
  279. "weight": 1
  280. },
  281. {
  282. "id": 2,
  283. "name": "b",
  284. "weight": 0
  285. }
  286. ]
  287. ```
  288. ---
  289. `DELETE /api/portal/subclass/:id`
  290. 删除某个subclass
  291. ---
  292. `PUT /api/portal/subclasses/loc`
  293. 修改subclass的location,即所属的screen
  294. ```
  295. [
  296. {
  297. "id": 1,
  298. "screen_id": 1
  299. },
  300. {
  301. "id": 2,
  302. "screen_id": 1
  303. }
  304. ]
  305. ```
  306. ---
  307. `GET /api/portal/subclass/:id/chart`
  308. 获取chart列表,根据chart的weight排序,不分页
  309. ---
  310. `POST /api/portal/subclass/:id/chart`
  311. 创建chart
  312. ```
  313. {
  314. "configs": "",
  315. "weight": 0
  316. }
  317. ```
  318. ---
  319. `PUT /api/portal/chart/:id`
  320. 修改某个chart的信息
  321. ```
  322. {
  323. "subclass_id": 1,
  324. "configs": ""
  325. }
  326. ```
  327. ---
  328. `DELETE /api/portal/chart/:id`
  329. 删除某个chart
  330. ---
  331. `PUT /api/portal/charts/weights`
  332. 修改chart的排序权重
  333. ```
  334. {
  335. "id": 1,
  336. "weight": 9
  337. }
  338. ```
  339. ---
  340. `GET /api/portal/tmpchart`
  341. 获取临时图,参数是QueryString:ids,逗号分隔的多个id
  342. ---
  343. `POST /api/portal/tmpchart`
  344. 创建一个临时图,返回生成的临时图的id列表
  345. ```
  346. [
  347. {
  348. "configs": ""
  349. },
  350. {
  351. "configs": ""
  352. }
  353. ]
  354. ```
  355. ---
  356. `GET /api/portal/event/cur`
  357. 获取某个节点下的未恢复报警列表,QueryString:
  358. - 节点路径:nodepath
  359. - 开始时间:stime
  360. - 结束时间:etime
  361. - 每页条数:limit
  362. - 查询条件:query
  363. - 优先级:priorities,逗号分隔的多个
  364. - 发送类型:sendtypes,逗号分隔的多个
  365. ---
  366. `GET /api/portal/event/cur/:id`
  367. 获取当前某一个未恢复的报警
  368. ---
  369. `DELETE /api/portal/event/cur/:id`
  370. 删除当前某一个未恢复的报警
  371. ---
  372. `POST /api/portal/event/curs/claim`
  373. 认领某一些未恢复的告警,避免告警升级到老板那里,id和nodepath只能传入一个,不能同时传入,也不能一个都不传,业务上的语义是:要么认领某一个告警事件,要么认领某个节点下的所有告警事件
  374. ```
  375. {
  376. "id": 1,
  377. "nodepath": ""
  378. }
  379. ```
  380. ---
  381. `GET /api/portal/event/his`
  382. 获取某个节点下的所有报警列表,QueryString:
  383. - 节点路径:nodepath
  384. - 开始时间:stime
  385. - 结束时间:etime
  386. - 每页条数:limit
  387. - 查询条件:query
  388. - 优先级:priorities,逗号分隔的多个
  389. - 发送类型:sendtypes,逗号分隔的多个
  390. - 事件类型:type
  391. ---
  392. `GET /api/portal/event/his/:id`
  393. 获取某个历史告警事件
  394. ---
  395. `GET /api/portal/collect/list`
  396. 获取某个节点下面配置的采集策略,必传QueryString: nid表示节点id,后端不分页,返回全部
  397. ---
  398. `GET /api/portal/collect`
  399. 获取单个采集配置的详情,QueryString:type和id,都必传,type是port、proc、log之一。
  400. ---
  401. `POST /api/portal/collect`
  402. 创建一个采集策略
  403. ```
  404. {
  405. "type": "",
  406. "data": {
  407. # 端口、进程、日志配置不同,参阅model/collect.go
  408. }
  409. }
  410. ```
  411. ---
  412. `PUT /api/portal/collect`
  413. 修改一个采集策略
  414. ```
  415. {
  416. "type": "",
  417. "data": {
  418. # 端口、进程、日志配置不同,参阅model/collect.go
  419. }
  420. }
  421. ```
  422. ---
  423. `DELETE /api/portal/collect`
  424. 删除采集策略
  425. ```
  426. {
  427. "type": "",
  428. "ids": []
  429. }
  430. ```
  431. ---
  432. `POST /api/portal/collect/check`
  433. 校验用户输入的数据是否匹配正则,跟商业版本数据结构一致
  434. ---
  435. `POST /api/portal/stra`
  436. 新增告警策略,跟商业版本数据结构一致
  437. ---
  438. `PUT /api/portal/stra`
  439. 修改告警策略,跟商业版本数据结构一致
  440. ---
  441. `DELETE /api/portal/stra`
  442. 删除告警策略,跟商业版本数据结构一致
  443. ---
  444. `GET /api/portal/stra`
  445. 获取告警策略列表,跟商业版本数据结构一致
  446. ---
  447. `GET /api/portal/stra/:id`
  448. 获取单个告警策略,跟商业版本数据结构一致