http_api_v1.json 11 KB

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