http_api_v1.json 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567
  1. {
  2. "version": "v1",
  3. "frozen_at": "2026-09-29",
  4. "source": "实测探活(重构前行为)",
  5. "bases": {
  6. "gateway": "http://127.0.0.1:28084",
  7. "detail": "http://127.0.0.1:18033",
  8. "algorithm": "http://127.0.0.1:18050"
  9. },
  10. "note": "前端 Vue / 后端 Java / 算法 FastAPI 三条线都以本契约为对拍基准;值随数据变不比,比方法/状态/顶层键。",
  11. "endpoints": [
  12. {
  13. "kind": "detail_api",
  14. "path": "/api/ask",
  15. "method": "POST",
  16. "status": 200,
  17. "ctype": "application/json",
  18. "json_keys": [
  19. "err"
  20. ],
  21. "bytes_at_least": 23
  22. },
  23. {
  24. "kind": "detail_api",
  25. "path": "/api/ask_models",
  26. "method": "GET",
  27. "status": 200,
  28. "ctype": "application/json",
  29. "json_keys": [
  30. "models"
  31. ],
  32. "bytes_at_least": 137
  33. },
  34. {
  35. "kind": "detail_api",
  36. "path": "/api/ask_status",
  37. "method": "GET",
  38. "status": 200,
  39. "ctype": "application/json",
  40. "json_keys": [
  41. "answer",
  42. "elapsed",
  43. "err",
  44. "lang",
  45. "model",
  46. "q",
  47. "review",
  48. "state",
  49. "step",
  50. "steps",
  51. "t0",
  52. "verify",
  53. "xrev"
  54. ],
  55. "bytes_at_least": 173
  56. },
  57. {
  58. "kind": "detail_api",
  59. "path": "/api/channels",
  60. "method": "GET",
  61. "status": 200,
  62. "ctype": "application/json",
  63. "json_keys": [
  64. "A.功率",
  65. "A.状态",
  66. "A.转速",
  67. "A.风况",
  68. "B.偏航",
  69. "B.冷却执行器",
  70. "B.变桨",
  71. "B.润滑液压",
  72. "B.温度NBM",
  73. "B.结构"
  74. ],
  75. "bytes_at_least": 512
  76. },
  77. {
  78. "kind": "detail_api",
  79. "path": "/api/curves",
  80. "method": "GET",
  81. "status": 200,
  82. "ctype": "application/json",
  83. "json_keys": [
  84. "figs",
  85. "note",
  86. "physics"
  87. ],
  88. "bytes_at_least": 512
  89. },
  90. {
  91. "kind": "detail_api",
  92. "path": "/api/dq_findings",
  93. "method": "GET",
  94. "status": 200,
  95. "ctype": "application/json",
  96. "json_keys": [
  97. "n",
  98. "note",
  99. "rows"
  100. ],
  101. "bytes_at_least": 420
  102. },
  103. {
  104. "kind": "detail_api",
  105. "path": "/api/facts",
  106. "method": "GET",
  107. "status": 200,
  108. "ctype": "application/json",
  109. "json_keys": [
  110. "cards",
  111. "contract_sha256",
  112. "contract_version",
  113. "generated"
  114. ],
  115. "bytes_at_least": 512
  116. },
  117. {
  118. "kind": "detail_api",
  119. "path": "/api/fleet",
  120. "method": "GET",
  121. "status": 200,
  122. "ctype": "application/json",
  123. "json_keys": [
  124. "all_months",
  125. "control",
  126. "faults",
  127. "fus",
  128. "kpi",
  129. "m8",
  130. "m9",
  131. "m9_pending",
  132. "months",
  133. "note",
  134. "rel",
  135. "sysdist",
  136. "sysmx_pending",
  137. "sysmx_span",
  138. "systems",
  139. "watch",
  140. "win",
  141. "win_pending"
  142. ],
  143. "bytes_at_least": 512
  144. },
  145. {
  146. "kind": "detail_api",
  147. "path": "/api/maint_framework",
  148. "method": "GET",
  149. "status": 200,
  150. "ctype": "application/json",
  151. "json_keys": [
  152. "coverage",
  153. "gaps",
  154. "records",
  155. "stages",
  156. "systems",
  157. "tiers"
  158. ],
  159. "bytes_at_least": 512
  160. },
  161. {
  162. "kind": "detail_api",
  163. "path": "/api/maint_std",
  164. "method": "GET",
  165. "status": 200,
  166. "ctype": "application/json",
  167. "json_keys": [
  168. "batch",
  169. "closure",
  170. "discontinuity",
  171. "recurrence",
  172. "score"
  173. ],
  174. "bytes_at_least": 512
  175. },
  176. {
  177. "kind": "detail_api",
  178. "path": "/api/maint_survey",
  179. "method": "GET",
  180. "status": 200,
  181. "ctype": "application/json",
  182. "json_keys": [
  183. "rows"
  184. ],
  185. "bytes_at_least": 512
  186. },
  187. {
  188. "kind": "detail_api",
  189. "path": "/api/ont_chain",
  190. "method": "GET",
  191. "status": 200,
  192. "ctype": "application/json",
  193. "json_keys": [
  194. "error",
  195. "text"
  196. ],
  197. "bytes_at_least": 106
  198. },
  199. {
  200. "kind": "detail_api",
  201. "path": "/api/ont_list",
  202. "method": "GET",
  203. "status": 200,
  204. "ctype": "application/json",
  205. "json_keys": [
  206. "rows"
  207. ],
  208. "bytes_at_least": 512
  209. },
  210. {
  211. "kind": "detail_api",
  212. "path": "/api/ont_obj",
  213. "method": "GET",
  214. "status": 200,
  215. "ctype": "application/json",
  216. "json_keys": [
  217. "err",
  218. "links",
  219. "obj"
  220. ],
  221. "bytes_at_least": 39
  222. },
  223. {
  224. "kind": "detail_api",
  225. "path": "/api/reload",
  226. "method": "GET",
  227. "status": 200,
  228. "ctype": "application/json",
  229. "json_keys": [
  230. "files",
  231. "ok",
  232. "old_stamp",
  233. "stamp"
  234. ],
  235. "bytes_at_least": 87
  236. },
  237. {
  238. "kind": "detail_api",
  239. "path": "/api/rpt_export",
  240. "method": "GET",
  241. "status": 200,
  242. "ctype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
  243. "bytes_at_least": 512
  244. },
  245. {
  246. "kind": "detail_api",
  247. "path": "/api/vibcms",
  248. "method": "GET",
  249. "status": 200,
  250. "ctype": "application/json",
  251. "json_keys": [
  252. "action",
  253. "date",
  254. "diff",
  255. "grades",
  256. "overall",
  257. "时间范围",
  258. "窗"
  259. ],
  260. "bytes_at_least": 512
  261. },
  262. {
  263. "kind": "detail_page",
  264. "path": "/v2",
  265. "method": "GET",
  266. "status": 200,
  267. "ctype": "text/html",
  268. "html_title": "观澜 · 风电数据分析与决策支持",
  269. "bytes_at_least": 512
  270. },
  271. {
  272. "kind": "cms",
  273. "path": "/cms/api/models",
  274. "method": "GET",
  275. "status": 200,
  276. "ctype": "application/json",
  277. "json_keys": [
  278. "models",
  279. "picked"
  280. ],
  281. "bytes_at_least": 96
  282. },
  283. {
  284. "kind": "cms",
  285. "path": "/cms/api/plugins",
  286. "method": "GET",
  287. "status": 200,
  288. "ctype": "application/json",
  289. "bytes_at_least": 512
  290. },
  291. {
  292. "kind": "cms",
  293. "path": "/cms/api/run",
  294. "method": "POST",
  295. "status": 200,
  296. "ctype": "application/json",
  297. "json_keys": [
  298. "kind",
  299. "text"
  300. ],
  301. "bytes_at_least": 290
  302. },
  303. {
  304. "kind": "cms",
  305. "path": "/cms/api/views",
  306. "method": "GET",
  307. "status": 200,
  308. "ctype": "application/json",
  309. "bytes_at_least": 2
  310. },
  311. {
  312. "kind": "gateway",
  313. "path": "/",
  314. "method": "GET",
  315. "status": 200,
  316. "ctype": "text/html",
  317. "html_title": "观澜中文系统 · 详细分析",
  318. "bytes_at_least": 512
  319. },
  320. {
  321. "kind": "gateway",
  322. "path": "/algorithm",
  323. "method": "GET",
  324. "status": 200,
  325. "ctype": "application/json",
  326. "json_keys": [
  327. "endpoints",
  328. "ok",
  329. "service",
  330. "time",
  331. "version"
  332. ],
  333. "bytes_at_least": 104
  334. },
  335. {
  336. "kind": "gateway",
  337. "path": "/cms",
  338. "method": "GET",
  339. "status": 200,
  340. "ctype": "text/html",
  341. "html_title": "如东海上风电场 振动诊断 · 客户版",
  342. "bytes_at_least": 512
  343. },
  344. {
  345. "kind": "gateway",
  346. "path": "/detail",
  347. "method": "GET",
  348. "status": 200,
  349. "ctype": "text/html",
  350. "html_title": "观澜 · 风电数据分析与决策支持",
  351. "bytes_at_least": 512
  352. },
  353. {
  354. "kind": "gateway",
  355. "path": "/sim",
  356. "method": "GET",
  357. "status": 200,
  358. "ctype": "text/html",
  359. "html_title": "4MW 机组 整机联调仿真台 · 演示",
  360. "bytes_at_least": 512
  361. },
  362. {
  363. "kind": "gateway",
  364. "path": "/sim/sys",
  365. "method": "GET",
  366. "status": 200,
  367. "ctype": "text/html",
  368. "html_title": "观澜 offshore-4-0-platform · 四系统联调",
  369. "bytes_at_least": 512
  370. },
  371. {
  372. "kind": "gateway",
  373. "path": "/viewer",
  374. "method": "GET",
  375. "status": 200,
  376. "ctype": "text/html",
  377. "html_title": "整台风机 · 单元拆装工作台",
  378. "bytes_at_least": 512
  379. },
  380. {
  381. "kind": "algorithm",
  382. "path": "/api/availability_summary",
  383. "method": "GET",
  384. "status": 200,
  385. "ctype": "application/json",
  386. "json_keys": [
  387. "台级损失top",
  388. "损失MWh",
  389. "时长h",
  390. "时间可用率_不含调度令",
  391. "物理上限核",
  392. "零本底"
  393. ],
  394. "bytes_at_least": 475
  395. },
  396. {
  397. "kind": "algorithm",
  398. "path": "/api/curves_check",
  399. "method": "GET",
  400. "status": 200,
  401. "ctype": "application/json",
  402. "json_keys": [
  403. "Betz",
  404. "λ叶尖速比",
  405. "齿比恒等"
  406. ],
  407. "bytes_at_least": 512
  408. },
  409. {
  410. "kind": "algorithm",
  411. "path": "/api/endpoints",
  412. "method": "GET",
  413. "status": 200,
  414. "ctype": "application/json",
  415. "json_keys": [
  416. "count",
  417. "items"
  418. ],
  419. "bytes_at_least": 512
  420. },
  421. {
  422. "kind": "algorithm",
  423. "path": "/api/fusion",
  424. "method": "GET",
  425. "status": 200,
  426. "ctype": "application/json",
  427. "bytes_at_least": 512
  428. },
  429. {
  430. "kind": "algorithm",
  431. "path": "/api/handoff",
  432. "method": "GET",
  433. "status": 200,
  434. "ctype": "application/json",
  435. "json_keys": [
  436. "calibration_updates_v1",
  437. "detectability_prior",
  438. "field_actions_v1",
  439. "meta",
  440. "open_items",
  441. "per_turbine"
  442. ],
  443. "bytes_at_least": 512
  444. },
  445. {
  446. "kind": "algorithm",
  447. "path": "/api/matrix",
  448. "method": "GET",
  449. "status": 200,
  450. "ctype": "application/json",
  451. "json_keys": [
  452. "WTG01",
  453. "WTG02",
  454. "WTG03",
  455. "WTG04",
  456. "WTG05",
  457. "WTG06",
  458. "WTG07",
  459. "WTG08",
  460. "WTG09",
  461. "WTG10",
  462. "WTG11",
  463. "WTG12",
  464. "WTG13",
  465. "WTG14",
  466. "WTG15",
  467. "WTG16",
  468. "WTG17",
  469. "WTG18",
  470. "WTG19",
  471. "WTG20"
  472. ],
  473. "bytes_at_least": 512
  474. },
  475. {
  476. "kind": "algorithm",
  477. "path": "/api/pitch",
  478. "method": "GET",
  479. "status": 200,
  480. "ctype": "application/json",
  481. "bytes_at_least": 512
  482. },
  483. {
  484. "kind": "algorithm",
  485. "path": "/api/problems",
  486. "method": "GET",
  487. "status": 200,
  488. "ctype": "application/json",
  489. "json_keys": [
  490. "主控与传感网",
  491. "偏航",
  492. "发电机",
  493. "变桨",
  494. "变流器",
  495. "齿轮箱"
  496. ],
  497. "bytes_at_least": 512
  498. },
  499. {
  500. "kind": "algorithm",
  501. "path": "/api/reconcile",
  502. "method": "GET",
  503. "status": 200,
  504. "ctype": "application/json",
  505. "json_keys": [
  506. "主控与传感网",
  507. "主轴承",
  508. "发电机",
  509. "变流器",
  510. "齿轮箱"
  511. ],
  512. "bytes_at_least": 512
  513. },
  514. {
  515. "kind": "algorithm",
  516. "path": "/api/reliability",
  517. "method": "GET",
  518. "status": 200,
  519. "ctype": "application/json",
  520. "json_keys": [
  521. "口径",
  522. "外部类停机h",
  523. "总停机h",
  524. "窗",
  525. "表",
  526. "设备类停机h"
  527. ],
  528. "bytes_at_least": 512
  529. },
  530. {
  531. "kind": "algorithm",
  532. "path": "/api/systems",
  533. "method": "GET",
  534. "status": 200,
  535. "ctype": "application/json",
  536. "json_keys": [
  537. "SYSTEMS",
  538. "TEMP2SYS"
  539. ],
  540. "bytes_at_least": 512
  541. },
  542. {
  543. "kind": "algorithm",
  544. "path": "/docs",
  545. "method": "GET",
  546. "status": 200,
  547. "ctype": "text/html",
  548. "html_title": "观澜 · 算法服务 - Swagger UI",
  549. "bytes_at_least": 512
  550. },
  551. {
  552. "kind": "algorithm",
  553. "path": "/healthz",
  554. "method": "GET",
  555. "status": 200,
  556. "ctype": "application/json",
  557. "json_keys": [
  558. "endpoints",
  559. "ok",
  560. "service",
  561. "time",
  562. "version"
  563. ],
  564. "bytes_at_least": 104
  565. }
  566. ]
  567. }