From 9ed2bd57805109fd236587308b2e21530afc8bcf Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Fri, 29 May 2026 10:04:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(mp):=20=E6=9B=B4=E6=AD=A3=20/mp/common/faq?= =?UTF-8?q?=20changelog=20=E4=B8=BA=E6=9C=80=E7=BB=88=E7=BB=93=E6=9E=84=20?= =?UTF-8?q?{id,name,items[id,question,answer]}=20(#3237,=20=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=20#3230)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../29_fix_mp_common_faq_category_null.md | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/changelogs/2026-05/29_fix_mp_common_faq_category_null.md b/changelogs/2026-05/29_fix_mp_common_faq_category_null.md index 7bb9854..92e8588 100644 --- a/changelogs/2026-05/29_fix_mp_common_faq_category_null.md +++ b/changelogs/2026-05/29_fix_mp_common_faq_category_null.md @@ -1,28 +1,44 @@ -# 【FYI·小程序】常见问题 /mp/common/faq 分类名 category 补回(前端无需改) +# 【小程序】常见问题 /mp/common/faq 返回结构修正为 {id, name, items:[{id, question, answer}]} -> **类型**: 后端字段修复(fix,后端已改并部署测试服验证通过) +> **类型**: 后端出参结构修复(fix,后端已改并部署测试服验证通过) > **服务**: hl-mp-service > **日期**: 2026-05-29 -> **影响范围**: 小程序端 `GET /mp/common/faq` 返回体每个分组的 `category`(分类名)字段 -> **归属**: 后端已修(PR #3231 → dev,#3232 同步 dev-v3) +> **影响范围**: 小程序端 `GET /mp/common/faq` 返回体结构 +> **归属**: 后端已修(PR #3237 → dev,#3238 同步 dev-v3;修正了早先 #3231/#3232 的错误修法) > **状态**: 已部署测试服并验证通过 > **关联工单**: #3230 --- -## 一、问题 +## ⚠️ 更正说明 -小程序 `GET /mp/common/faq` 返回的 FAQ 分组里,`category`(分类名)一直是 null/空;问题列表 `question`/`answer` 正常。 +本文件早先版本(基于 PR #3231)写的「对外字段名仍是 `category`、结构不变」是**错误的**。前端实际期望的是 `{id, name, items:[{id, question, answer}]}`(分类名读 `name` 不是 `category`,且需要分类 `id` 和 item `id`)。已用 PR #3237 修正,以本文为准。 -根因(后端内部):上游 user-service 重构后分类名字段叫 `name`,而 hl-mp-service 反序列化用的字段叫 `category`,字段名错位映射不上 → `category` 恒空。 +## 一、最终返回结构 -## 二、改动(后端已完成) +```json +{ + "code": 200, + "data": [ + { + "id": 1, + "name": "产品怎么选", + "items": [ + { "id": 10, "question": "……", "answer": "……" } + ] + } + ] +} +``` -后端已修正字段映射。现在 `GET /mp/common/faq` 每个分组的 `category` 正常返回真实分类名。 +- 分组:`id`(分类ID)、`name`(分类名)、`items` +- 条目:`id`(问题ID)、`question`、`answer` +- 与前端现有读取方式(`cat.id` / `cat.name` / `item.id` / `item.question` / `item.answer`)一致,**前端无需改动**。 -- **对外字段名不变**,仍是 `category`,前端按原样读取即可,**无需任何改动**。 -- 返回结构不变:`data: [ { category: "分类名", items: [ { question, answer } ] } ]`。 +## 二、背景 + +之前 mp 返回的是 `{category, items:[{question, answer}]}` —— 分类名字段名错(`category` 而非 `name`)、且缺分类 `id` 与 item `id`,与前端不符。现已改为上游 user-service 原始结构,字段按名直通。 ## 三、测试服实测 -清缓存后 `GET /mp/common/faq` 返回 4 个分组,`category` 全部为真实分类名(常见问题 / 售后服务 / 行前准备 / 目的地信息),无一为空;`items` 的 `question`/`answer` 正常。 +清缓存后 `GET /mp/common/faq` 返回 4 个分组,分组 keys = `[id, name, items]`(无 `category`),item keys = `[id, question, answer]`,与前端结构完全一致。