Sfoglia il codice sorgente

chore(exam): 组卷API入口记录原始 body 与 query 便于对照

Made-with: Cursor
yemeishu 1 mese fa
parent
commit
edb5dea9be
1 ha cambiato i file con 29 aggiunte e 2 eliminazioni
  1. 29 2
      app/Http/Controllers/Api/IntelligentExamController.php

+ 29 - 2
app/Http/Controllers/Api/IntelligentExamController.php

@@ -62,11 +62,38 @@ class IntelligentExamController extends Controller
             'method' => $request->method(),
         ]);
 
-        // 优先从body获取数据,不使用query params
-        $payload = $request->json()->all();
+        // 优先从body获取数据,不使用query params(入口仍记录 query,便于对照网关是否拼错)
+        $jsonPayload = $request->json()->all();
+        $bodySource = 'json';
+        $payload = $jsonPayload;
         if (empty($payload)) {
             $payload = $request->all();
+            $bodySource = 'request_all';
         }
+        $queryParams = $request->query();
+        $rawBody = $request->getContent();
+        $rawBodyLen = strlen($rawBody);
+        $rawBodyLog = null;
+        if ($rawBodyLen > 0) {
+            $rawCap = 65536;
+            if ($rawBodyLen <= $rawCap) {
+                $rawBodyLog = $rawBody;
+            } else {
+                $rawBodyLog = substr($rawBody, 0, $rawCap);
+            }
+        }
+
+        Log::info('IntelligentExamController: 组卷API原始请求参数(入口,未经 normalizePayload)', [
+            'trace_id' => $requestTraceId,
+            'content_type' => $request->header('Content-Type'),
+            'body_source' => $bodySource,
+            'body_payload' => $payload,
+            'query_params' => $queryParams,
+            'raw_body_length' => $rawBodyLen,
+            'raw_body' => $rawBodyLog,
+            'raw_body_truncated' => $rawBodyLen > 65536,
+        ]);
+
         $normalized = $this->normalizePayload($payload);
 
         $validator = validator($normalized, [