Przeglądaj źródła

feat(mode_workflow): 新增POST /api/all_process批量查询接口

通过POST请求体传递case_ids参数,规避GET请求URL过长触发的nginx连接限制,支持全表查询、空结果返回及精简投影模式
刘文武 1 dzień temu
rodzic
commit
afa983687b
1 zmienionych plików z 10 dodań i 0 usunięć
  1. 10 0
      examples/mode_workflow/server.py

+ 10 - 0
examples/mode_workflow/server.py

@@ -840,6 +840,16 @@ class Handler(BaseHTTPRequestHandler):
                 self._json({"task_id": _spawn_task("search", cmd,
                                                    meta={"query_id": qid, "query": query}),
                             "query_id": qid})
+            elif u.path == "/api/all_process":
+                # 批量解构(POST 版):case_ids 放 body,避免 GET 几百个 id 拼出超长 URL
+                # (超 nginx/上游 ~8KB 限制会断连)。语义同 GET:
+                #   case_ids 省略/null = 全表;[] = 空;lite=True 走精简投影。
+                cids = payload.get("case_ids")
+                if cids is not None and not isinstance(cids, list):
+                    return self._err("case_ids 须为数组")
+                lite = bool(payload.get("lite"))
+                m = db.fetch_all_process(cids, lite=lite)
+                self._json({"count": len(m), "procedures_by_case": m})
             else:
                 self._err("not found", 404)
         except Exception as e: