library-picturebook-activity/docs/api/public-leai-work-form.md
zhonghua b2ae6653d5 feat: 编目与配音页 work-form 整包提交(详情快照+字段覆盖)
docs: 新增乐读派作品表单 PUT/GET 外部对接说明
Made-with: Cursor
2026-04-16 09:49:49 +08:00

5.6 KiB
Raw Blame History

乐读派作品表单本库快照API

面向外部系统与本平台前端「创作壳」对齐:不经过乐读派 B2 的 GET/PUT 作品详情,直接读写本库 t_ugc_work / t_ugc_work_page 中的编目与分页快照。

说明
Base URL 部署域名 + context-path /api(见 application.yml server.servlet.context-path
完整路径前缀 /api/public/leai-works
认证 需要登录。请求头携带 Authorization: Bearer <JWT>;与 Web 端一致时可加 X-Tenant-CodeX-Tenant-Id(见前端 request.ts
安全说明 该路径不在 Spring Security 匿名白名单中,未带有效 Token 将返回 401

1. 保存编目 / 分页快照

请求

Method PUT
URL /api/public/leai-works/{remoteWorkId}/work-form
Content-Type application/json

路径参数

参数 类型 必填 说明
remoteWorkId string 乐读派侧作品 ID可能为大整数建议按字符串传输;路径中需 URL 编码)

示例

PUT /api/public/leai-works/2044362486899150848/work-form HTTP/1.1
Host: <your-host>
Authorization: Bearer <access_token>
Content-Type: application/json

{
  "title": "绘本标题",
  "author": "作者署名",
  "subtitle": "副标题",
  "intro": "简介",
  "tags": ["冒险", "成长"],
  "pageList": [
    {
      "pageNum": 1,
      "imageUrl": "https://...",
      "text": "本页文案",
      "audioUrl": "https://..."
    }
  ]
}

请求体JSON 对象)

  • 不能为空{} 会返回 400请求体不能为空)。
  • 服务端从 body 中读取两类数据:
    1. 编目字段(可选子集):仅处理以下键,其余顶层键若存在会被忽略(除 pageList 外):
      authortitlesubtitleintrotags
    2. 分页pageList 为数组时,按乐读派 pageList 形态写入本库分页表。
字段 类型 说明
title string 标题
author string 作者署名
subtitle string 副标题
intro string 简介
tags string[] 标签列表
pageList object[] 分页列表;元素字段见下表

pageList 元素:

字段 类型 说明
pageNum number 页码(与后端 page_no 对应)
imageUrl string 插图 URL
text string 本页文案
audioUrl string 配音 URL可为空字符串表示未配

业务规则(摘要)

  • 作品必须属于当前登录用户remote_work_id 匹配,否则 404作品不存在或无权操作)。
  • 若本次请求更新了编目,且作品为草稿、且乐读派进度已 ≥「生成完成」,可能将发布状态从草稿置为未发布(见 PublicLeaiWorkFormService)。
  • pageList 非空,且每一页audioUrl 均为非空白字符串,则将 leai_status 更新为 已配音5

成功响应

HTTP 200Body 为统一包装:

{
  "code": 200,
  "message": "success",
  "data": null
}

data 可能为 null,以实际返回为准。)

错误响应

HTTP codebody 典型 message
400 400 remoteWorkId 无效 / 请求体不能为空
401 401 未认证或 Token 无效
404 404 作品不存在或无权操作

错误体结构与项目统一 Result 一致(含 message 等字段)。


2. 查询本库作品详情(建议与 PUT 配合:先 GET 再改后 PUT

便于外部系统做「读-改-写」合并,避免只提交部分字段时覆盖丢失其它字段。

Method GET
URL /api/public/leai-works/{remoteWorkId}/work-form
认证 同 PUTBearer JWT

成功响应 data 结构(对象)

字段 类型 说明
workId string 与路径中 remoteWorkId 一致(乐读派 ID
status number 乐读派创作进度 leai_status,见下表
title string 标题
author string 作者
coverUrl string 封面 URL
subtitle string 副标题
intro string 简介
tags array 标签
pageList object[] 分页;元素含 pageNumimageUrltextaudioUrl

statusleai_status)取值参考

含义
-1 失败
0 草稿
1 待处理
2 处理中
3 生成完成
4 已编目
5 已配音

(定义见后端 LeaiCreationStatus。)


3. 对接建议

  1. 大整数 IDremoteWorkId 在部分语言中超出 IEEE754 安全整数,全程使用字符串
  2. 合并提交:若只改编目,可先 GET 全量,在内存中覆盖 author/subtitle/intro/tags/title 等字段后再 PUT 全量,与当前前端「快照 + 覆盖」策略一致,避免清空 pageList
  3. 仅改分页:可只带 pageList(及必须的非空 body编目键可选。
  4. Swagger:若服务开启 Knife4j可在 /doc.html 查看 公众端-乐读派作品表单 分组(以部署为准)。

4. 实现位置(源码索引)

说明 路径
Controller lesingle-creation-backend/.../pub/controller/PublicLeaiWorkController.java
业务 lesingle-creation-backend/.../pub/service/PublicLeaiWorkFormService.java

文档版本与接口行为以服务端代码为准;若行为变更请同步更新本文档。