Anniv

⚠️️ 目前的 Anniv 仍处于 Draft 状态,尚未完全定稿。欢迎随时提出意见或建议。

⚠️️ 目前 Anniv 协议的版本为 1

Anniv 是统合用户体验的中心化平台,提供注入播放列表(歌单)、Annil Token 同步等功能。

从定位上来看,它类似于 last.fm,但提供了针对 Project Anni 的独特功能。

阅读导览

对 API 的描述分为 Endpoint、请求(请求参数)、返回(返回参数)、参数表示和错误列表。每项中均可能存在客户端设计指引或示例。

请求

所有带有 body 的请求均为 application/json,参数均写在 body 内。

对于不带 body 的请求,参数以 Param 形式传递。

返回

返回的状态码一般均为 200 Okbody 均为 JSON 格式,结构如下:

interface ResponseBody<T> {
  status: number;
  message?: string;
  data: T;
}

在后续的描述中,我们只描述类型 T 的结果,省略外层包裹的 JSON Object

status0 时,data 中包含类型为 T 的返回数据。

返回状态

返回状态为 6 位数字,具体划分如下:

领域分类编号
1 代表基本错误代码,2 代表特性错误代码,9 代表通用错误代码2 位数字3 位数字

无错误

无错误时,返回的 status0

通用错误

通用错误如下表所示:

错误代码详情
900000站点致命错误
900001数据库连接错误
901000数据写入错误
901001数据读取错误
902000内容不存在
902001无权访问
902002用户未登录
902003非法参数
902004内容已存在

错误说明

大部分接口都需要用户登录,因此本文档仅在不需要用户登录的接口处作特殊标注。除此之外,所有接口均可能返回 902002 用户未登录 错误。

通用结构

本文中默认定义 Id 结构如下:

type Id = { id: string };