Request Normalize 與 Input 契約
對應程式:
這份文件只回答一件事
前端送進來的 payload,進主流程前會被整理成什麼內部格式。
已對齊的 normalize 規則
FormSummary預設為[]FormSummary先做rawurldecodeiosFormSummary會 flatten 回 legacy 可接受形狀- 每個
Form[...]value 先做rawurldecode - checkbox / multi-select 的 scalar list 會轉成 legacy 下游慣用格式
FormSummary內的base64圖片內容會清理QuoteRequest[phone_no]/User[phone]會做電話 sanitizeQuoteRequest[landing_page_url]與QuoteRequestLandingPage[*].landing_page_url會 decodepreserve_to_quote_service_id會對齊到preserve_quote_service_idmatch_type會依 legacy 規則做 clamp
為什麼這層要獨立看
很多 staging case 看起來像 matcher 不一致,實際上是 request parse 已經分岔。
典型症狀:
- checkbox 題目在
form_summary變成空陣列 language_summary顯示空白job_center_summary混進 JSON 字串match_type與 legacy 不同- phone、landing page、region 導致後續條件分岔