Files
jiapuapp/docs/Apifox写接口字段—表单控件映射-2026-07-27.md
T
2026-07-28 07:58:30 +08:00

14 KiB
Raw Blame History

Apifox 写接口字段—表单控件映射

当前有效的 149 operation 总表、页面 owner 与阻塞项见 APP-149接口页面归属与表单字段审计-2026-07-27.md。本文件保留为字段控件速查表;其中以下修订以根目录最新 家谱.openapi.json 为准。

口径与来源

  • 核对时间:2026-07-27。
  • 主源:桌面 Apifox 当前 APP 项目(149 条 operation)及同一时刻导出的根目录 家谱.openapi.json;两者的 operation 数量一致。
  • 必填 以 Apifox 必需 标记为准;没有 必需 的字段均应允许不填,提交时传空值或省略由当前 API 适配器统一处理。
  • 枚举选择 只能提交下表列出的 value,不能把中文标签提交给后端。
  • 候选选择 只能从对应选项接口选取,页面不得暴露裸露的内部 ID 输入框。
  • 上传 必须先走统一上传,提交上传回执中的 ossId;不能让用户手输 OSS ID。
  • 所有 sortOrder 是整数数字框;所有 amount/giftAmount 是金额数字框;示例为 yyyy-MM-dd HH:mm:ss 的时间字段用“日期 + 时间”控件拼接后提交。

已在 Apifox 字段详情中确认的字典

字段/字典 value → 中文 页面控件
sys_user_sex 0 男;1 女;2 未知 单选/下拉选择
gen_number_yes_no 0 否;1 单选/下拉选择
gen_lineage_person_status 0 健在;1 已故;2 未知 单选/下拉选择
sys_normal_disable 0 正常;1 停用 单选/开关;默认 0
gen_genealogy_visibility 0 私密;1 公开;2 成员可见 单选/下拉选择
gen_genealogy_join_mode 0 关闭加入;1 申请审核;2 邀请加入 单选/下拉选择
gen_merit_type donation 捐赠;repair 修祠;public 公益;other 其他 单选/下拉选择
活动邀请响应 ACCEPTED 接受;DECLINED 拒绝 二选一

completed 在 Apifox 当前详情中是 string,只给出示例 0,没有挂字典/允许值;因此不能伪造“完成/未完成”的值表。当前页面应默认省略,待后端给出该字段的字典定义后再开启开关。

已有页面:字段到控件映射

M02 修改用户资料 — PUT /genealogy/app/auth/profile

字段 必填 Apifox 详情 正确控件与提交
nickName string,用户昵称,最多 30 字 文本框,最多 30 字
realName string,真实姓名,最多 30 字 文本框,最多 30 字
avatar int64,头像文件 OSS ID 图片上传;仅提交可安全表示的数值 OSS ID
sex sys_user_sex 枚举选择 0/1/2
birthday date,生日,格式 yyyy-MM-dd 日期选择器
email email,最多 100 字 email 文本框

G03/G11 创建、修改家谱 — GenealogyCreateBody / GenealogyUpdateBody

字段 创建必填 正确控件与提交
genealogyName 文本框
surname 文本框
ancestralHall 文本框
originPlace 文本框
regionCode 省市区级联候选选择,提交行政区划 code
addressDetail 文本框
coverOssId 图片上传,提交字符串 OSS ID
intro 多行文本
visibility 枚举选择:私密 0 / 公开 1 / 成员可见 2
joinMode 枚举选择:关闭加入 0 / 申请审核 1 / 邀请加入 2

T04/T05 录入、修改世系人物 — LineagePersonBody

同一 body 还用于“添加子女、父母、兄弟姐妹、配偶”。name 是唯一 body 必填字段;关系路径由 URL 决定,不能把中文关系标签当成接口字段替代。

字段 必填 Apifox 详情/限制 正确控件与提交
bindingMode 身份认领方式:NONE / SELF / SPECIFIED 固定英文枚举选择:不绑定账号 / 绑定当前账号 / 绑定指定用户;不发送中文值
appUserId bindingMode 而定 NONE 不绑定账号且不传;SELF 绑定当前登录账号且不传,后端从 Token 获取;SPECIFIED 绑定指定业务用户且必须传 SPECIFIED 由管理员选择可信业务用户候选后提交;当前没有候选接口时禁止该选项保存,绝不手输 ID
personNo 人物编号;不传由服务端生成 可选文本框;留空时省略
name 姓名 文本框 + 必填校验
aliasName 别名或曾用名 文本框
sex sys_user_sex 枚举选择:男 0 / 女 1 / 未知 2
generation int64,世代序号 正整数数字框;首位成员固定为 1
generationName 字辈或辈分 文本框
fatherId 父亲人物 ID,必须属于当前家谱 /lineage/persons/options 选择父亲,提交人物 ID
motherId 母亲人物 ID,必须属于当前家谱 /lineage/persons/options 选择母亲,提交人物 ID
avatarOssId string/null,头像文件 OSS ID;说明明确要求统一上传组件取得,不允许手工录入 图片上传,提交字符串 OSS ID
birthDate date-time/null(写接口示例为 yyyy-MM-dd 日期选择;未录入不传
birthLunar gen_number_yes_no 枚举选择:否 0 / 是 1
birthPlace 出生地 文本框
deathDate date-time/null(写接口示例为 yyyy-MM-dd 日期选择;未录入不传
deathLunar gen_number_yes_no 枚举选择:否 0 / 是 1
deathPlace 逝世地 文本框
burialPlace 安葬地 文本框
personStatus gen_lineage_person_status 枚举选择:健在 0 / 已故 1 / 未知 2
biography 人物简介 多行文本
sortOrder int64,排序值 整数数字框
remark 备注 多行文本
relationName 关系名称 新增亲属时由关系选择派生;编辑时可作为文本修订

页面实测(2026-07-27

  • 此接口字段标为 date-time,但四个写接口示例使用 yyyy-MM-dd。页面此前把日期追加为 yyyy-MM-dd HH:mm:ss,会在客户端 normalizeLineagePersonDate 校验阶段被拒绝,尚未发起请求;现已改为只传日期。
  • 后端于 2026-07-27 明确补齐身份认领合同:NONESELF 禁止提交 appUserIdSELF 由后端从 Token 取当前 APP 用户;仅 SPECIFIED 必须提交 appUserId。页面默认 NONE,不再自动读取或提交 profile.userId
  • 同日页面实测 POST .../children:请求体为 bindingMode: "NONE" 且不存在 appUserId,后端仍返回 HTTP 200 / envelope code:500发生未知异常,请联系管理员;三世数据未落库,需后端确认新版写接口是否已部署并排查该业务异常。

F02 家族圈动态 — FamilyFeedBody

字段 必填 Apifox 详情 正确控件与提交
feedType 动态类型;未传默认 text 当前页面固定传 text,不让用户输入代码
feedContent 动态内容,不允许为空 多行文本 + 必填校验
mediaOssIds 多个文件 OSS ID 用英文逗号分隔 多图上传;回执 ID 以 , 拼接
sortOrder int64;未传默认 0 整数数字框
status sys_normal_disable 正常 0 / 停用 1;创建页默认 0,非管理页不暴露停用操作

F06 谱文、F07 相册、F09 相册照片

body.字段 必填 正确控件与提交
ArticleBody.categoryId 从“谱文分类”接口候选选择;不手填分类 ID
articleTitle / articleSummary / authorName 标题是 分别为文本、多行摘要、文本
articleContent 富文本/多行内容编辑
coverOssId 图片上传,字符串 OSS ID
ArticleBody.sortOrder 整数数字框
ArticleBody.status sys_normal_disable 选择,默认 0
AlbumBody.albumName 文本框
albumDesc 多行文本
coverOssId 图片上传,字符串 OSS ID
AlbumBody.sortOrder 整数数字框
AlbumBody.status sys_normal_disable 选择,默认 0
AlbumPhotoBody.ossId 图片上传;提交字符串 OSS ID
photoTitle / photoDesc / photographer 文本、多行文本、文本
shootTime 拍摄时间;示例按标准时间字符串
AlbumPhotoBody.sortOrder 整数数字框
AlbumPhotoBody.status sys_normal_disable 选择,默认 0

R07 祭祀活动、R04 献礼

body.字段 必填 正确控件与提交
CeremonyBody.ceremonyType Apifox 当前为普通 string;文本框,不能自行伪造枚举
ceremonyTitle 文本框
ceremonyDesc 多行文本
ceremonyTime 示例为 yyyy-MM-dd HH:mm:ss;日期 + 时间选择
location / locationAddress 地点名称、详细地址文本框;两项都应保留
longitude / latitude 仅可由地图选点组件成对回填;当前没有地图候选/选点合同,R07 不暴露手输框,也不传这两个字段。API 适配层只接受成对有限数字,供后续真实地图组件使用。
coverOssId 图片上传,字符串 OSS ID
sortOrder 整数数字框
status sys_normal_disable 选择,默认 0
CeremonyGiftBody.giverName 文本框
giftAmount 金额数字框
giftMessage 多行文本

R08 成长记录、R09 亲友记录、R10 备忘、R11 功德

body.字段 必填 Apifox 详情/正确控件
GrowthRecordBody.lineagePersonId 世系人物候选选择,提交人物 ID
recordType 当前详情为普通 string,文本框
recordTitle 文本框
recordContent 多行文本
recordDate / remindTime 示例均为 yyyy-MM-dd HH:mm:ss;日期 + 时间选择
mediaOssIds 多图上传,逗号分隔 OSS ID
GrowthRecordBody.sortOrder / status 整数数字框;sys_normal_disable 选择
MemoBody.memoTitle 文本框
memoContent 多行文本
remindTime 示例为 yyyy-MM-dd HH:mm:ss;日期 + 时间选择
completed 当前仅 string 示例 0,无字典;默认省略,不能私设枚举
MemoBody.mediaOssIds / sortOrder / status 多图上传;整数数字框;sys_normal_disable 选择
RelativeRecordBody.relativeName 文本框
relationName / eventName 文本框
eventTime 示例为 yyyy-MM-dd HH:mm:ss;日期 + 时间选择
giftAmount 金额数字框
recordContent 多行文本
RelativeRecordBody.mediaOssIds / sortOrder / status 多图上传;整数数字框;sys_normal_disable 选择
MeritRecordBody.donorName / meritTitle 文本框
meritType 枚举选择:捐赠 donation / 修祠 repair / 公益 public / 其他 other
meritContent 多行文本
amount 金额数字框
meritTime 示例为 yyyy-MM-dd HH:mm:ss;日期 + 时间选择
MeritRecordBody.sortOrder / status 整数数字框;sys_normal_disable 选择

其余写接口:同样必须按字段类型建控件

接口 body 字段映射
GenealogyJoinApplyBody applicantNamephonerelationDescapplyReason 为文本/多行文本;inviterUserId 必须是业务用户候选选择,当前缺候选接口时不暴露裸 ID 输入。
GenealogyJoinAuditBody status 是审核结果,必须由 Apifox 的审核状态字典提供选项后才做选择器;auditRemark 多行文本。
GenealogyMemberUpdateBody memberNamerelationNameroleType 文本;lineagePersonId 为世系人物候选选择。
GenealogyOwnerTransferBody targetMemberId 必填,家谱成员候选选择。
GenerationPoemBody generationNo 必填正整数;generationText 必填文本;description 多行文本;sortOrder 数字;statussys_normal_disable
GenerationPoemBatchBody poemText 必填多行文本;disableMissing 布尔开关。
FamilyFeedCommentBody parentCommentId 为评论候选/回复上下文,不能输入 ID;commentContent 必填多行文本。
FeedbackBody feedbackType 选填枚举选择:advice 建议、bug 功能问题、complaint 投诉反馈、other 其他;界面显示中文标签,提交 value。feedbackContent 必填多行文本;contactInfo 文本。
VipOrderBody packageId 必填,VIP 套餐候选选择;genealogyId 为当前家谱上下文选择;payType 只能使用支付方式字典,不能手填代码。
VideoBody videoTitle 必填文本,videoDesc 多行文本,coverOssId/videoOssId 为上传,durationSeconds/sortOrder 为数字,statussys_normal_disable
CeremonyInviteesBody inviteeUserIds 必填多选业务用户候选;无候选接口不能用逗号文本代替数组。
CeremonyInvitationResponseBody inviteStatus 必填二选一:接受 ACCEPTED、拒绝 DECLINED

非页面直接填写的底层接口

认证挑战、验证码、分片上传初始化/完成、文件引用等 body 由登录/上传流程生成,不应渲染为业务表单。grantTypetenantIdchallengeIdvalidToken、文件 hash/分片大小等由对应流程拥有,不能让用户在页面中编辑。

当前改造判定

  1. 已经可以立即改为选择控件的字段:sex、出生/逝世农历、personStatusvisibilityjoinMode、所有 statusmeritType、邀请响应。
  2. 必须改为候选选择的字段:所有家谱/成员/世系人物/分类/套餐/受邀用户的 ID 字段。
  3. 必须改为上传的字段:所有 *OssIdmediaOssIds、头像、封面、照片、视频文件。
  4. completedpayType、审核 status 等尚未在当前 Apifox 字段详情给出允许值;在后端未提供字典或候选接口前,不增加猜测性选择项。feedbackType 已有四个枚举值,已改为选择控件。