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

创建小说

创建小说元信息。导入正文请使用批量上传接口。

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

Request Body

application/json
示例代码
{
  "platformId": 1,
  "authorId": 2,
  "title": "示例小说",
  "summary": "小说简介",
  "coverUrl": "https://example.com/cover.jpg",
  "status": "ONGOING",
  "tagIds": [3, 5]
}
请求键类型必填默认/约束
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 提出建议 ↗