跳转到文档内容
文档ATHubAPI 参考小说元信息
API REFERENCEATHub

覆盖小说元信息

完整替换小说元信息,不是局部更新。

PUT/api/v2/novelinfo?id=10REST
{ }Bodyapplication/json
示例代码
{
  "platformId": 1,
  "authorId": 2,
  "title": "示例小说",
  "summary": "小说简介",
  "coverUrl": "https://example.com/cover.jpg",
  "status": "ONGOING",
  "tagIds": [3, 5]
}

Request Body

application/json

URL 只允许必填查询键 id。请求体与 POST 完全相同。 这是完整替换而非局部更新,省略可空字段会清空,省略状态会恢复为 ONGOING。 省略 tagIds、传 null 或 [] 都会清空这部小说的全部标签引用,不会删除标签库中的标签。 不存在返回 404。

请求键类型必填默认/约束
platformIdinteger是已存在的平台 ID。
authorIdinteger / null否省略/null 保存为 null;非空时作者必须存在且属于 platformId。
titlestring是去除首尾空白后不能为空。书名不唯一,不按书名自动去重。
summarystring / null否省略/null 保存为 null;空字符串与 null 不同。
coverUrlstring / null否省略/null 保存为 null;不验证或下载图片。
statusstring否ONGOING 连载中或 COMPLETED 已完结,区分大小写。省略/null/空字符串按 ONGOING。
tagIdsinteger[] / null否标签库中已存在的标签 ID,不得重复。省略/null 按 [];任一标签不存在返回 400,整次写入回滚。

POST 成功返回 201 和 Location: /api/v2/novelinfo?id=10;PUT 成功返回 200。 两者以及 GET 单条的响应结构:

示例代码
{
  "id": 10,
  "platformId": 1,
  "authorId": 2,
  "title": "示例小说",
  "summary": "小说简介",
  "coverUrl": "https://example.com/cover.jpg",
  "status": "ONGOING",
  "tagIds": [3, 5],
  "createdAt": "2026-10-29T04:00:00Z",
  "updatedAt": "2026-10-29T04:00:00Z"
}

id、createdAt、updatedAt 为只读生成字段;其余键定义与写入字段表相同。 可空字段即使为 null 也会返回。GET 列表为上述对象组成的数组。 tagIds 始终返回数组,按标签 ID 升序;无标签时为 []。标签名称单独通过标签库查询,不在小说中重复存储。 批量创建的 novel.tagIds 使用相同规则;以 novelId 续传保留已有标签引用。

正文与 JSON 示例读取自 docs/content/athub/API.md,与项目文档保持同源。
发现文档有问题?在 GitHub 提出建议 ↗