Anniv
⚠️️ 目前的
Anniv
仍处于Draft
状态,尚未完全定稿。欢迎随时提出意见或建议。
⚠️️ 目前
Anniv
协议的版本为1
。
Anniv
是统合用户体验的中心化平台,提供注入播放列表(歌单)、Annil
Token 同步等功能。
从定位上来看,它类似于 last.fm
,但提供了针对 Project Anni
的独特功能。
阅读导览
对 API 的描述分为 Endpoint
、请求(请求参数)、返回(返回参数)、参数表示和错误列表。每项中均可能存在客户端设计指引或示例。
请求
所有带有 body
的请求均为 application/json
,参数均写在 body
内。
对于不带 body
的请求,参数以 Param
形式传递。
返回
返回的状态码一般均为 200 Ok
,body
均为 JSON
格式,结构如下:
interface ResponseBody<T> {
status: number;
message?: string;
data: T;
}
在后续的描述中,我们只描述类型 T
的结果,省略外层包裹的 JSON Object
。
当 status
为 0
时,data
中包含类型为 T
的返回数据。
返回状态
返回状态为 6
位数字,具体划分如下:
领域 | 分类 | 编号 |
---|---|---|
1 代表基本错误代码,2 代表特性错误代码,9 代表通用错误代码 | 2 位数字 | 3 位数字 |
无错误
无错误时,返回的 status
为 0
。
通用错误
通用错误如下表所示:
错误代码 | 详情 |
---|---|
900000 | 站点致命错误 |
900001 | 数据库连接错误 |
901000 | 数据写入错误 |
901001 | 数据读取错误 |
902000 | 内容不存在 |
902001 | 无权访问 |
902002 | 用户未登录 |
902003 | 非法参数 |
902004 | 内容已存在 |
错误说明
大部分接口都需要用户登录,因此本文档仅在不需要用户登录的接口处作特殊标注。除此之外,所有接口均可能返回 902002 用户未登录
错误。
通用结构
本文中默认定义 Id
结构如下:
type Id = { id: string };