3431 lines
90 KiB
YAML
3431 lines
90 KiB
YAML
openapi: 3.0.2
|
||
info:
|
||
title: ''
|
||
version: ''
|
||
tags:
|
||
- name: 条目
|
||
- name: 章节
|
||
- name: 角色
|
||
- name: 人物
|
||
- name: 用户
|
||
- name: 收藏
|
||
- name: 编辑历史
|
||
- name: 目录
|
||
paths:
|
||
/v0/search/subjects:
|
||
post:
|
||
tags:
|
||
- 条目
|
||
summary: 条目搜索
|
||
operationId: searchSubjects
|
||
description: |
|
||
## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
|
||
|
||
目前支持的筛选条件包括:
|
||
- `type`: 条目类型,参照 `SubjectType` enum, `或`。
|
||
- `tag`: 标签,可以多次出现。`且` 关系。
|
||
- `airdate`: 播出日期/发售日期。`且` 关系。
|
||
- `rating`: 用于搜索指定评分的条目。`且` 关系。
|
||
- `rank`: 用于搜索指定排名的条目。`且` 关系。
|
||
- `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。
|
||
|
||
不同筛选条件之间为 `且`
|
||
|
||
|
||
由于目前 meilisearch 的一些问题,条目排名更新并不会触发搜索数据更新,所以条目排名可能是过期数据。
|
||
|
||
希望未来版本的 meilisearch 能解决相关的问题。
|
||
parameters:
|
||
- name: limit
|
||
in: query
|
||
description: 分页参数
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
- name: offset
|
||
in: query
|
||
description: 分页参数
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
required:
|
||
- keyword
|
||
properties:
|
||
keyword:
|
||
type: string
|
||
sort:
|
||
enum:
|
||
- match
|
||
- heat
|
||
- rank
|
||
- score
|
||
default: match
|
||
type: string
|
||
example: rank
|
||
description: |
|
||
排序规则
|
||
|
||
- `match` meilisearch 的默认排序,按照匹配程度
|
||
- `heat` 收藏人数
|
||
- `rank` 排名由高到低
|
||
- `score` 评分
|
||
filter:
|
||
type: object
|
||
description: 不同条件之间是 `且` 的关系
|
||
properties:
|
||
type:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/SubjectType'
|
||
description: 条目类型,参照 `SubjectType` enum,多值之间为 `或` 的关系。
|
||
tag:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- 童年
|
||
- 原创
|
||
description: 标签,可以多次出现。多值之间为 `且` 关系。
|
||
air_date:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- '>=2020-07-01'
|
||
- <2020-10-01
|
||
description: 播出日期/发售日期,日期必需为 `YYYY-MM-DD` 格式。多值之间为 `且` 关系。
|
||
rating:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- '>=6'
|
||
- <8
|
||
description: 用于搜索指定评分的条目,多值之间为 `且` 关系。
|
||
rank:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- '>10'
|
||
- <=18
|
||
description: 用于搜索指定排名的条目,多值之间为 `且` 关系。
|
||
nsfw:
|
||
type: boolean
|
||
description: |
|
||
无权限的用户会直接忽略此字段,不会返回R18条目。
|
||
|
||
默认或者 `null` 会返回包含 R18 的所有搜索结果。
|
||
|
||
`true` 只会返回 R18 条目。
|
||
|
||
`false` 只会返回非 R18 条目。
|
||
responses:
|
||
'200':
|
||
description: 返回搜索结果
|
||
content:
|
||
application/json:
|
||
schema:
|
||
description: 用户信息
|
||
type: object
|
||
properties:
|
||
total:
|
||
description: 搜索结果数量
|
||
type: integer
|
||
example: 100
|
||
limit:
|
||
description: 当前分页参数
|
||
type: integer
|
||
example: 100
|
||
offset:
|
||
description: 当前分页参数
|
||
type: integer
|
||
example: 100
|
||
data:
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- score
|
||
- id
|
||
- rank
|
||
- tags
|
||
- name
|
||
- name_cn
|
||
- image
|
||
- date
|
||
- summary
|
||
properties:
|
||
id:
|
||
description: 条目ID
|
||
type: integer
|
||
example: 8
|
||
type:
|
||
$ref: '#/components/schemas/SubjectType'
|
||
date:
|
||
type: string
|
||
description: 上映/开播/连载开始日期,可能为空字符串
|
||
image:
|
||
type: string
|
||
format: url
|
||
description: 封面
|
||
summary:
|
||
type: string
|
||
description: 条目描述
|
||
name:
|
||
type: string
|
||
description: 条目原名
|
||
name_cn:
|
||
type: string
|
||
description: 条目中文名
|
||
tags:
|
||
$ref: '#/components/schemas/SubjectTags'
|
||
score:
|
||
description: 评分
|
||
type: number
|
||
rank:
|
||
description: 排名
|
||
type: integer
|
||
/v0/subjects/{subject_id}:
|
||
get:
|
||
tags:
|
||
- 条目
|
||
summary: 获取条目
|
||
description: cache with 300s
|
||
operationId: getSubjectById
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Subject'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/subjects/{subject_id}/image:
|
||
get:
|
||
tags:
|
||
- 条目
|
||
summary: Get Subject Image
|
||
operationId: getSubjectImageById
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
- required: true
|
||
description: 枚举值 {small|grid|large|medium|common}
|
||
schema:
|
||
title: Image Type
|
||
type: string
|
||
name: type
|
||
in: query
|
||
responses:
|
||
'302':
|
||
description: Successful Response
|
||
headers:
|
||
Location:
|
||
schema:
|
||
type: string
|
||
description: |-
|
||
图片链接
|
||
无图时返回默认图片 https://lain.bgm.tv/img/no_icon_subject.png
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/subjects/{subject_id}/persons:
|
||
get:
|
||
tags:
|
||
- 条目
|
||
summary: Get Subject Persons
|
||
operationId: getRelatedPersonsBySubjectId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/RelatedPerson'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/subjects/{subject_id}/characters:
|
||
get:
|
||
tags:
|
||
- 条目
|
||
summary: Get Subject Characters
|
||
operationId: getRelatedCharactersBySubjectId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/RelatedCharacter'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/subjects/{subject_id}/subjects:
|
||
get:
|
||
tags:
|
||
- 条目
|
||
summary: Get Subject Relations
|
||
operationId: getRelatedSubjectsBySubjectId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/v0_subject_relation'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/episodes:
|
||
get:
|
||
tags:
|
||
- 章节
|
||
summary: Get Episodes
|
||
operationId: getEpisodes
|
||
parameters:
|
||
- $ref: '#/components/parameters/query_subject_id'
|
||
- description: 参照章节的`type`
|
||
required: false
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/components/schemas/EpType'
|
||
description: 参照章节的`type`
|
||
type: integer
|
||
name: type
|
||
in: query
|
||
- required: false
|
||
description: 分页参数
|
||
schema:
|
||
title: Limit
|
||
maximum: 200
|
||
minimum: 1
|
||
type: integer
|
||
default: 100
|
||
name: limit
|
||
in: query
|
||
- required: false
|
||
description: 分页参数
|
||
schema:
|
||
title: Offset
|
||
minimum: 0
|
||
type: integer
|
||
default: 0
|
||
name: offset
|
||
in: query
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Paged_Episode'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/episodes/{episode_id}:
|
||
get:
|
||
tags:
|
||
- 章节
|
||
summary: Get Episode
|
||
operationId: getEpisodeById
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_episode_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/EpisodeDetail'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/characters/{character_id}:
|
||
get:
|
||
tags:
|
||
- 角色
|
||
summary: Get Character Detail
|
||
description: cache with 60s
|
||
operationId: getCharacterById
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_character_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CharacterDetail'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/characters/{character_id}/image:
|
||
get:
|
||
tags:
|
||
- 角色
|
||
summary: Get Character Image
|
||
operationId: getCharacterImageById
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_character_id'
|
||
- required: true
|
||
description: 枚举值 {small|grid|large|medium}
|
||
schema:
|
||
title: Image Type
|
||
type: string
|
||
name: type
|
||
in: query
|
||
responses:
|
||
'302':
|
||
description: Successful Response
|
||
headers:
|
||
Location:
|
||
schema:
|
||
type: string
|
||
description: |-
|
||
图片链接
|
||
无图时返回默认图片 https://lain.bgm.tv/img/no_icon_subject.png
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/characters/{character_id}/subjects:
|
||
get:
|
||
tags:
|
||
- 角色
|
||
summary: get character related subjects
|
||
operationId: getRelatedSubjectsByCharacterId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_character_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/v0_RelatedSubject'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/characters/{character_id}/persons:
|
||
get:
|
||
tags:
|
||
- 角色
|
||
summary: get character related persons
|
||
operationId: getRelatedPersonsByCharacterId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_character_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/CharacterPerson'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/persons/{person_id}:
|
||
get:
|
||
tags:
|
||
- 人物
|
||
summary: Get Person
|
||
description: cache with 60s
|
||
operationId: getPersonById
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_person_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PersonDetail'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/persons/{person_id}/image:
|
||
get:
|
||
tags:
|
||
- 角色
|
||
summary: Get Person Image
|
||
operationId: getPersonImageById
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_person_id'
|
||
- required: true
|
||
description: 枚举值 {small|grid|large|medium}
|
||
schema:
|
||
title: Image Type
|
||
type: string
|
||
name: type
|
||
in: query
|
||
responses:
|
||
'302':
|
||
description: Successful Response
|
||
headers:
|
||
Location:
|
||
schema:
|
||
type: string
|
||
description: |-
|
||
图片链接
|
||
无图时返回默认图片 https://lain.bgm.tv/img/no_icon_subject.png
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/persons/{person_id}/subjects:
|
||
get:
|
||
tags:
|
||
- 人物
|
||
summary: get person related subjects
|
||
operationId: getRelatedSubjectsByPersonId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_person_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/v0_RelatedSubject'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/persons/{person_id}/characters:
|
||
get:
|
||
tags:
|
||
- 人物
|
||
summary: get person related characters
|
||
operationId: getRelatedCharactersByPersonId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_person_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/PersonCharacter'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/users/{username}:
|
||
get:
|
||
tags:
|
||
- 用户
|
||
summary: Get User by name
|
||
description: 获取用户信息
|
||
operationId: getUserByName
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_username'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/User'
|
||
'400':
|
||
description: username 太长
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 对应用户不存在
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/users/{username}/avatar:
|
||
get:
|
||
tags:
|
||
- 用户
|
||
summary: Get User Avatar by name
|
||
description: 获取用户头像,302 重定向至头像地址,设置了 username 之后无法使用 UID 查询。
|
||
operationId: getUserAvatarByName
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_username'
|
||
- required: true
|
||
description: 枚举值 {small|large|medium}
|
||
schema:
|
||
title: Avatar Type
|
||
type: string
|
||
name: type
|
||
in: query
|
||
responses:
|
||
'302':
|
||
description: Successful Response
|
||
headers:
|
||
Location:
|
||
schema:
|
||
type: string
|
||
description: |-
|
||
用户头像链接
|
||
无头像时返回默认头像 https://lain.bgm.tv/pic/user/m/icon.jpg
|
||
'400':
|
||
description: username 太长
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 对应用户不存在
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/me:
|
||
get:
|
||
tags:
|
||
- 用户
|
||
summary: Get User
|
||
description: 返回当前 Access Token 对应的用户信息
|
||
operationId: getMyself
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/User'
|
||
'403':
|
||
description: unauthorized
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
/v0/users/{username}/collections:
|
||
get:
|
||
tags:
|
||
- 收藏
|
||
summary: 获取用户收藏
|
||
description: 获取对应用户的收藏,查看私有收藏需要access token。
|
||
operationId: getUserCollectionsByUsername
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_username'
|
||
- description: |-
|
||
条目类型,默认为全部
|
||
|
||
具体含义见 [SubjectType](#model-SubjectType)
|
||
required: false
|
||
schema:
|
||
$ref: '#/components/schemas/SubjectType'
|
||
name: subject_type
|
||
in: query
|
||
- description: |-
|
||
收藏类型,默认为全部
|
||
|
||
具体含义见 [CollectionType](#model-CollectionType)
|
||
required: false
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/components/schemas/SubjectCollectionType'
|
||
type: integer
|
||
name: type
|
||
in: query
|
||
- $ref: '#/components/parameters/default_query_limit'
|
||
- $ref: '#/components/parameters/default_query_offset'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Paged_UserCollection'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 用户不存在
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/users/{username}/collections/{subject_id}:
|
||
get:
|
||
tags:
|
||
- 收藏
|
||
summary: 获取用户单个收藏
|
||
description: 获取对应用户的收藏,查看私有收藏需要access token。
|
||
operationId: getUserCollection
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_username'
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/UserSubjectCollection'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 用户不存在或者条目未收藏,或者条目为私有收藏
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/users/-/collections/{subject_id}:
|
||
post:
|
||
tags:
|
||
- 收藏
|
||
summary: 新增或修改用户单个收藏
|
||
description: |
|
||
修改条目收藏状态, 如果不存在则创建,如果存在则修改
|
||
|
||
由于直接修改剧集条目的完成度可能会引起意料之外效果,只能用于修改书籍类条目的完成度。
|
||
|
||
方法的所有请求体字段均可选
|
||
operationId: postUserCollection
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/UserSubjectCollectionModifyPayload'
|
||
responses:
|
||
'204':
|
||
description: Successful Response
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'401':
|
||
description: Unauthorized
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 用户不存在
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
patch:
|
||
tags:
|
||
- 收藏
|
||
summary: 修改用户单个收藏
|
||
description: |
|
||
修改条目收藏状态
|
||
|
||
由于直接修改剧集条目的完成度可能会引起意料之外效果,只能用于修改书籍类条目的完成度。
|
||
|
||
PATCH 方法的所有请求体字段均可选
|
||
operationId: patchUserCollection
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/UserSubjectCollectionModifyPayload'
|
||
responses:
|
||
'204':
|
||
description: Successful Response
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'401':
|
||
description: Unauthorized
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 用户不存在或者条目未收藏
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
/v0/users/-/collections/{subject_id}/episodes:
|
||
get:
|
||
tags:
|
||
- 收藏
|
||
summary: 章节收藏信息
|
||
operationId: getUserSubjectEpisodeCollection
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
- $ref: '#/components/parameters/default_query_offset'
|
||
- required: false
|
||
schema:
|
||
title: Limit
|
||
maximum: 1000
|
||
minimum: 1
|
||
type: integer
|
||
default: 100
|
||
name: limit
|
||
description: 分页参数
|
||
in: query
|
||
- required: false
|
||
schema:
|
||
$ref: '#/components/schemas/EpType'
|
||
in: query
|
||
name: episode_type
|
||
description: 章节类型,不传则不按照章节进行筛选
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/components/schemas/Page'
|
||
- type: object
|
||
properties:
|
||
data:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/UserEpisodeCollection'
|
||
'400':
|
||
description: Bad Request
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'401':
|
||
description: not authorized
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 条目不存在
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
patch:
|
||
tags:
|
||
- 收藏
|
||
summary: 章节收藏信息
|
||
description: |
|
||
同时会重新计算条目的完成度
|
||
operationId: patchUserSubjectEpisodeCollection
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
required:
|
||
- episode_id
|
||
- type
|
||
properties:
|
||
episode_id:
|
||
type: array
|
||
items:
|
||
type: integer
|
||
example:
|
||
- 1
|
||
- 2
|
||
- 8
|
||
type:
|
||
$ref: '#/components/schemas/EpisodeCollectionType'
|
||
responses:
|
||
'204':
|
||
description: Successful Response
|
||
'400':
|
||
description: Bad Request
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'401':
|
||
description: not authorized
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 条目不存在
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
/v0/users/-/collections/-/episodes/{episode_id}:
|
||
get:
|
||
tags:
|
||
- 收藏
|
||
summary: 章节收藏信息
|
||
operationId: getUserEpisodeCollection
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_episode_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/UserEpisodeCollection'
|
||
'400':
|
||
description: episode ID not valid
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'401':
|
||
description: not authorized
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 条目或者章节不存在
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
put:
|
||
tags:
|
||
- 收藏
|
||
summary: 更新章节收藏信息
|
||
operationId: putUserEpisodeCollection
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_episode_id'
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
type:
|
||
$ref: '#/components/schemas/EpisodeCollectionType'
|
||
required:
|
||
- type
|
||
responses:
|
||
'204':
|
||
description: Successful Response
|
||
'400':
|
||
description: episode ID not valid or subject not collected
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'401':
|
||
description: not authorized
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: 条目或者章节不存在
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
/v0/revisions/persons:
|
||
get:
|
||
tags:
|
||
- 编辑历史
|
||
summary: Get Person Revisions
|
||
operationId: getPersonRevisions
|
||
parameters:
|
||
- required: true
|
||
schema:
|
||
title: Person ID
|
||
minimum: 1
|
||
type: integer
|
||
name: person_id
|
||
description: 角色 ID
|
||
in: query
|
||
- $ref: '#/components/parameters/default_query_limit'
|
||
- $ref: '#/components/parameters/default_query_offset'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Paged_Revision'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/revisions/persons/{revision_id}:
|
||
get:
|
||
tags:
|
||
- 编辑历史
|
||
summary: Get Person Revision
|
||
operationId: getPersonRevisionByRevisionId
|
||
parameters:
|
||
- required: true
|
||
schema:
|
||
title: Revision ID
|
||
minimum: 1
|
||
type: integer
|
||
name: revision_id
|
||
description: 历史版本 ID
|
||
in: path
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PersonRevision'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/revisions/characters:
|
||
get:
|
||
tags:
|
||
- 编辑历史
|
||
summary: Get Character Revisions
|
||
operationId: getCharacterRevisions
|
||
parameters:
|
||
- required: true
|
||
schema:
|
||
title: Character ID
|
||
minimum: 1
|
||
type: integer
|
||
name: character_id
|
||
description: 角色 ID
|
||
in: query
|
||
- $ref: '#/components/parameters/default_query_limit'
|
||
- $ref: '#/components/parameters/default_query_offset'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Paged_Revision'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/revisions/characters/{revision_id}:
|
||
get:
|
||
tags:
|
||
- 编辑历史
|
||
summary: Get Character Revision
|
||
operationId: getCharacterRevisionByRevisionId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_revision_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CharacterRevision'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/revisions/subjects:
|
||
get:
|
||
tags:
|
||
- 编辑历史
|
||
summary: Get Subject Revisions
|
||
operationId: getSubjectRevisions
|
||
parameters:
|
||
- required: true
|
||
schema:
|
||
title: Subject ID
|
||
minimum: 1
|
||
type: integer
|
||
name: subject_id
|
||
description: 条目 ID
|
||
in: query
|
||
- $ref: '#/components/parameters/default_query_limit'
|
||
- $ref: '#/components/parameters/default_query_offset'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Paged_Revision'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/revisions/subjects/{revision_id}:
|
||
get:
|
||
tags:
|
||
- 编辑历史
|
||
summary: Get Subject Revision
|
||
operationId: getSubjectRevisionByRevisionId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_revision_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SubjectRevision'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/revisions/episodes:
|
||
get:
|
||
tags:
|
||
- 编辑历史
|
||
summary: Get Episode Revisions
|
||
operationId: getEpisodeRevisions
|
||
parameters:
|
||
- required: true
|
||
schema:
|
||
title: Episode ID
|
||
minimum: 1
|
||
type: integer
|
||
name: episode_id
|
||
description: 章节 ID
|
||
in: query
|
||
- $ref: '#/components/parameters/default_query_limit'
|
||
- $ref: '#/components/parameters/default_query_offset'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Paged_Revision'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/revisions/episodes/{revision_id}:
|
||
get:
|
||
tags:
|
||
- 编辑历史
|
||
summary: Get Episode Revision
|
||
operationId: getEpisodeRevisionByRevisionId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_revision_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DetailedRevision'
|
||
'400':
|
||
description: Validation Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
/v0/indices:
|
||
post:
|
||
tags:
|
||
- 目录
|
||
summary: Create a new index
|
||
operationId: newIndex
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Index'
|
||
'401':
|
||
description: Unauthorized
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
/v0/indices/{index_id}:
|
||
get:
|
||
tags:
|
||
- 目录
|
||
summary: Get Index By ID
|
||
operationId: getIndexById
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_index_id'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Index'
|
||
'404':
|
||
$ref: '#/components/responses/404'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
put:
|
||
tags:
|
||
- 目录
|
||
summary: Edit index's information
|
||
operationId: editIndexById
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_index_id'
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/IndexBasicInfo'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Index'
|
||
'400':
|
||
$ref: '#/components/responses/400'
|
||
'401':
|
||
$ref: '#/components/responses/401'
|
||
'404':
|
||
$ref: '#/components/responses/404'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
/v0/indices/{index_id}/subjects:
|
||
get:
|
||
tags:
|
||
- 目录
|
||
summary: Get Index Subjects
|
||
operationId: getIndexSubjectsByIndexId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_index_id'
|
||
- required: false
|
||
description: 条目类型
|
||
schema:
|
||
$ref: '#/components/schemas/SubjectType'
|
||
name: type
|
||
in: query
|
||
- $ref: '#/components/parameters/default_query_limit'
|
||
- $ref: '#/components/parameters/default_query_offset'
|
||
responses:
|
||
'200':
|
||
description: Successful Response
|
||
'400':
|
||
$ref: '#/components/responses/400'
|
||
'404':
|
||
$ref: '#/components/responses/404'
|
||
security:
|
||
- OptionalHTTPBearer: [ ]
|
||
post:
|
||
tags:
|
||
- 目录
|
||
summary: Add a subject to Index
|
||
operationId: addSubjectToIndexByIndexId
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_index_id'
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/IndexSubjectAddInfo'
|
||
responses:
|
||
'200':
|
||
$ref: '#/components/responses/200-no-content'
|
||
'400':
|
||
$ref: '#/components/responses/401'
|
||
'401':
|
||
$ref: '#/components/responses/400'
|
||
'404':
|
||
$ref: '#/components/responses/404'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
/v0/indices/{index_id}/subjects/{subject_id}:
|
||
put:
|
||
tags:
|
||
- 目录
|
||
summary: Edit subject information in a index
|
||
operationId: editIndexSubjectsByIndexIdAndSubjectID
|
||
description: 如果条目不存在于目录,会创建该条目
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_index_id'
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/IndexSubjectEditInfo'
|
||
responses:
|
||
'200':
|
||
$ref: '#/components/responses/200-no-content'
|
||
'400':
|
||
$ref: '#/components/responses/400'
|
||
'401':
|
||
$ref: '#/components/responses/401'
|
||
'404':
|
||
$ref: '#/components/responses/404'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
delete:
|
||
tags:
|
||
- 目录
|
||
summary: Delete a subject from a Index
|
||
operationId: delelteSubjectFromIndexByIndexIdAndSubjectID
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_index_id'
|
||
- $ref: '#/components/parameters/path_subject_id'
|
||
responses:
|
||
'200':
|
||
$ref: '#/components/responses/200-no-content'
|
||
'401':
|
||
$ref: '#/components/responses/401'
|
||
'404':
|
||
$ref: '#/components/responses/404'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
/v0/indices/{index_id}/collect:
|
||
post:
|
||
tags:
|
||
- 目录
|
||
summary: Collect index for current user
|
||
operationId: collectIndexByIndexIdAndUserId
|
||
description: 为当前用户收藏一条目录
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_index_id'
|
||
responses:
|
||
'200':
|
||
$ref: '#/components/responses/200-no-content'
|
||
'401':
|
||
$ref: '#/components/responses/401'
|
||
'404':
|
||
$ref: '#/components/responses/404'
|
||
'500':
|
||
$ref: '#/components/responses/500'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
delete:
|
||
tags:
|
||
- 目录
|
||
summary: Uncollect index for current user
|
||
operationId: uncollectIndexByIndexIdAndUserId
|
||
description: 为当前用户取消收藏一条目录
|
||
parameters:
|
||
- $ref: '#/components/parameters/path_index_id'
|
||
responses:
|
||
'200':
|
||
$ref: '#/components/responses/200-no-content'
|
||
'401':
|
||
$ref: '#/components/responses/401'
|
||
'404':
|
||
$ref: '#/components/responses/404'
|
||
'500':
|
||
$ref: '#/components/responses/500'
|
||
security:
|
||
- HTTPBearer: [ ]
|
||
components:
|
||
parameters:
|
||
path_subject_id:
|
||
required: true
|
||
name: subject_id
|
||
description: 条目 ID
|
||
schema:
|
||
$ref: '#/components/schemas/SubjectID'
|
||
in: path
|
||
path_username:
|
||
required: true
|
||
schema:
|
||
type: string
|
||
description: 设置了用户名之后无法使用 UID。
|
||
name: username
|
||
in: path
|
||
path_episode_id:
|
||
required: true
|
||
schema:
|
||
title: Episode ID
|
||
minimum: 1
|
||
description: 剧集 ID
|
||
type: integer
|
||
name: episode_id
|
||
description: 章节 ID
|
||
in: path
|
||
path_character_id:
|
||
required: true
|
||
description: 角色 ID
|
||
schema:
|
||
title: Character ID
|
||
minimum: 1
|
||
type: integer
|
||
name: character_id
|
||
in: path
|
||
path_person_id:
|
||
required: true
|
||
schema:
|
||
title: Person ID
|
||
minimum: 1
|
||
type: integer
|
||
name: person_id
|
||
description: 人物 ID
|
||
in: path
|
||
path_index_id:
|
||
required: true
|
||
description: 目录 ID
|
||
schema:
|
||
title: Index ID
|
||
minimum: 1
|
||
type: integer
|
||
name: index_id
|
||
in: path
|
||
query_subject_id:
|
||
required: true
|
||
name: subject_id
|
||
description: 条目 ID
|
||
schema:
|
||
$ref: '#/components/schemas/SubjectID'
|
||
in: query
|
||
default_query_limit:
|
||
required: false
|
||
schema:
|
||
title: Limit
|
||
maximum: 50
|
||
minimum: 1
|
||
type: integer
|
||
default: 30
|
||
name: limit
|
||
description: 分页参数
|
||
in: query
|
||
default_query_offset:
|
||
required: false
|
||
schema:
|
||
title: Offset
|
||
minimum: 0
|
||
type: integer
|
||
default: 0
|
||
description: 分页参数
|
||
name: offset
|
||
in: query
|
||
path_revision_id:
|
||
required: true
|
||
schema:
|
||
title: Revision ID
|
||
minimum: 1
|
||
type: integer
|
||
name: revision_id
|
||
description: 版本 ID
|
||
in: path
|
||
schemas:
|
||
SubjectID:
|
||
title: Subject ID
|
||
minimum: 1
|
||
description: 条目 ID
|
||
type: integer
|
||
User:
|
||
example:
|
||
avatar:
|
||
large: https://lain.bgm.tv/pic/user/l/000/00/00/1.jpg?r=1391790456
|
||
medium: https://lain.bgm.tv/pic/user/m/000/00/00/1.jpg?r=1391790456
|
||
small: https://lain.bgm.tv/pic/user/s/000/00/00/1.jpg?r=1391790456
|
||
sign: Awesome!
|
||
username: sai
|
||
nickname: Sai🖖
|
||
id: 1
|
||
user_group: 1
|
||
title: User
|
||
description: |
|
||
实际的返回值可能包括文档未声明的 `url` 字段,此字段主要用于开发者从 api 响应直接转跳到网页。
|
||
客户端开发者请不用依赖于此特性,此字段的值随时可能会改变。
|
||
required:
|
||
- id
|
||
- username
|
||
- nickname
|
||
- user_group
|
||
- avatar
|
||
- sign
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
username:
|
||
title: Username
|
||
type: string
|
||
description: 唯一用户名,初始与 UID 相同,可修改一次
|
||
nickname:
|
||
title: Nickname
|
||
type: string
|
||
user_group:
|
||
$ref: '#/components/schemas/UserGroup'
|
||
avatar:
|
||
$ref: '#/components/schemas/Avatar'
|
||
sign:
|
||
title: Sign
|
||
description: 个人签名
|
||
type: string
|
||
Avatar:
|
||
example:
|
||
large: https://lain.bgm.tv/pic/user/l/000/00/00/1.jpg?r=1391790456
|
||
medium: https://lain.bgm.tv/pic/user/m/000/00/00/1.jpg?r=1391790456
|
||
small: https://lain.bgm.tv/pic/user/s/000/00/00/1.jpg?r=1391790456
|
||
title: Avatar
|
||
required:
|
||
- large
|
||
- medium
|
||
- small
|
||
type: object
|
||
properties:
|
||
large:
|
||
title: Large
|
||
type: string
|
||
format: url
|
||
medium:
|
||
title: Medium
|
||
type: string
|
||
format: url
|
||
small:
|
||
title: Small
|
||
type: string
|
||
format: url
|
||
UserGroup:
|
||
title: UserGroup
|
||
enum:
|
||
- 1
|
||
- 2
|
||
- 3
|
||
- 4
|
||
- 5
|
||
- 8
|
||
- 9
|
||
- 10
|
||
- 11
|
||
type: integer
|
||
description: >-
|
||
用户组 - 1 = 管理员 - 2 = Bangumi 管理猿 - 3 = 天窗管理猿 - 4 = 禁言用户 - 5 = 禁止访问用户 - 8
|
||
= 人物管理猿 - 9 = 维基条目管理猿 - 10 = 用户 - 11 = 维基人
|
||
x-ms-enum:
|
||
name: UserGroup
|
||
modelAsString: false
|
||
values:
|
||
- Admin
|
||
- BangumiAdmin
|
||
- DoujinAdmin
|
||
- MutedUser
|
||
- BlockedUser
|
||
- PersonAdmin
|
||
- WikiAdmin
|
||
- User
|
||
- WikiUser
|
||
x-enum-varnames:
|
||
- Admin
|
||
- BangumiAdmin
|
||
- DoujinAdmin
|
||
- MutedUser
|
||
- BlockedUser
|
||
- PersonAdmin
|
||
- WikiAdmin
|
||
- User
|
||
- WikiUser
|
||
BloodType:
|
||
title: BloodType
|
||
enum:
|
||
- 1
|
||
- 2
|
||
- 3
|
||
- 4
|
||
type: integer
|
||
description: Blood type of a person. A, B, AB, O
|
||
x-ms-enum:
|
||
name: BloodType
|
||
modelAsString: false
|
||
values:
|
||
- A
|
||
- B
|
||
- AB
|
||
- O
|
||
x-enum-varnames:
|
||
- A
|
||
- B
|
||
- AB
|
||
- O
|
||
CharacterDetail:
|
||
title: CharacterDetail
|
||
required:
|
||
- id
|
||
- name
|
||
- type
|
||
- summary
|
||
- locked
|
||
- stat
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
name:
|
||
title: Name
|
||
type: string
|
||
type:
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/CharacterType'
|
||
description: 角色,机体,舰船,组织...
|
||
images:
|
||
title: Images
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonImages'
|
||
description: object with some size of images, this object maybe `null`
|
||
summary:
|
||
title: Summary
|
||
type: string
|
||
locked:
|
||
title: Locked
|
||
type: boolean
|
||
infobox:
|
||
title: Infobox
|
||
type: array
|
||
items:
|
||
type: object
|
||
description: |-
|
||
server parsed infobox, a map from key to string or tuple
|
||
null if server infobox is not valid
|
||
gender:
|
||
title: Gender
|
||
type: string
|
||
description: parsed from wiki, maybe null
|
||
blood_type:
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/BloodType'
|
||
description: parsed from wiki, maybe null, `1, 2, 3, 4` for `A, B, AB, O`
|
||
birth_year:
|
||
title: Birth Year
|
||
type: integer
|
||
description: parsed from wiki, maybe `null`
|
||
birth_mon:
|
||
title: Birth Mon
|
||
type: integer
|
||
description: parsed from wiki, maybe `null`
|
||
birth_day:
|
||
title: Birth Day
|
||
type: integer
|
||
description: parsed from wiki, maybe `null`
|
||
stat:
|
||
$ref: '#/components/schemas/Stat'
|
||
CharacterPerson:
|
||
title: CharacterPerson
|
||
required:
|
||
- id
|
||
- name
|
||
- type
|
||
- subject_id
|
||
- subject_name
|
||
- subject_name_cn
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
name:
|
||
title: Name
|
||
type: string
|
||
type:
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/CharacterType'
|
||
description: 角色,机体,舰船,组织...
|
||
images:
|
||
title: Images
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonImages'
|
||
description: object with some size of images, this object maybe `null`
|
||
subject_id:
|
||
title: Subject ID
|
||
type: integer
|
||
subject_name:
|
||
title: Subject Name
|
||
type: string
|
||
subject_name_cn:
|
||
title: Subject Name Cn
|
||
type: string
|
||
staff:
|
||
title: Staff
|
||
type: string
|
||
CharacterType:
|
||
title: CharacterType
|
||
enum:
|
||
- 1
|
||
- 2
|
||
- 3
|
||
- 4
|
||
type: integer
|
||
description: type of a character 角色,机体,舰船,组织...
|
||
x-ms-enum:
|
||
name: CharacterType
|
||
modelAsString: false
|
||
values:
|
||
- Character
|
||
- Mechanic
|
||
- Ship
|
||
- Organization
|
||
x-enum-varnames:
|
||
- Character
|
||
- Mechanic
|
||
- Ship
|
||
- Organization
|
||
SubjectCollectionType:
|
||
title: CollectionType
|
||
example: 3
|
||
enum:
|
||
- 1
|
||
- 2
|
||
- 3
|
||
- 4
|
||
- 5
|
||
type: integer
|
||
description: |-
|
||
- `1`: 想看
|
||
- `2`: 看过
|
||
- `3`: 在看
|
||
- `4`: 搁置
|
||
- `5`: 抛弃
|
||
x-ms-enum:
|
||
name: CollectionType
|
||
modelAsString: false
|
||
values:
|
||
- Wish
|
||
- Done
|
||
- Doing
|
||
- OnHold
|
||
- Dropped
|
||
x-enum-varnames:
|
||
- Wish
|
||
- Done
|
||
- Doing
|
||
- OnHold
|
||
- Dropped
|
||
EpisodeCollectionType:
|
||
title: EpisodeCollectionType
|
||
example: 2
|
||
enum:
|
||
- 1
|
||
- 2
|
||
- 3
|
||
type: integer
|
||
description: |-
|
||
- `0`: 未收藏
|
||
- `1`: 想看
|
||
- `2`: 看过
|
||
- `3`: 抛弃
|
||
x-ms-enum:
|
||
name: EpisodeCollectionType
|
||
modelAsString: false
|
||
values:
|
||
- Wish
|
||
- Done
|
||
- Dropped
|
||
x-enum-varNames:
|
||
- Wish
|
||
- Done
|
||
- Dropped
|
||
Creator:
|
||
title: Creator
|
||
required:
|
||
- username
|
||
- nickname
|
||
type: object
|
||
properties:
|
||
username:
|
||
title: Username
|
||
type: string
|
||
nickname:
|
||
title: Nickname
|
||
type: string
|
||
description: 意义同<a href="#model-Me">Me</a>
|
||
DetailedRevision:
|
||
title: DetailedRevision
|
||
required:
|
||
- id
|
||
- type
|
||
- summary
|
||
- created_at
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
type:
|
||
title: Type
|
||
type: integer
|
||
creator:
|
||
$ref: '#/components/schemas/Creator'
|
||
summary:
|
||
title: Summary
|
||
type: string
|
||
created_at:
|
||
title: Created At
|
||
type: string
|
||
format: date-time
|
||
data:
|
||
title: Data
|
||
type: object
|
||
description: 编辑修改内容,响应类型不固定
|
||
PersonRevision:
|
||
title: PersonRevision
|
||
allOf:
|
||
- $ref: '#/components/schemas/Revision'
|
||
- type: object
|
||
properties:
|
||
data:
|
||
title: Data
|
||
type: object
|
||
additionalProperties:
|
||
$ref: '#/components/schemas/PersonRevisionDataItem'
|
||
PersonRevisionDataItem:
|
||
title: PersonRevisionDataItem
|
||
required:
|
||
- prsn_infobox
|
||
- prsn_summary
|
||
- profession
|
||
- extra
|
||
- prsn_name
|
||
type: object
|
||
properties:
|
||
prsn_infobox:
|
||
title: Person Infobox
|
||
type: string
|
||
prsn_summary:
|
||
title: Person Summary
|
||
type: string
|
||
profession:
|
||
$ref: '#/components/schemas/PersonRevisionProfession'
|
||
extra:
|
||
$ref: '#/components/schemas/RevisionExtra'
|
||
prsn_name:
|
||
title: Person Name
|
||
type: string
|
||
PersonRevisionProfession:
|
||
title: PersonRevisionProfession
|
||
type: object
|
||
properties:
|
||
producer:
|
||
title: Producer
|
||
type: string
|
||
mangaka:
|
||
title: Mangaka
|
||
type: string
|
||
artist:
|
||
title: Artist
|
||
type: string
|
||
seiyu:
|
||
title: Seiyu
|
||
type: string
|
||
writer:
|
||
title: Writer
|
||
type: string
|
||
illustrator:
|
||
title: Illustrator
|
||
type: string
|
||
actor:
|
||
title: Actor
|
||
type: string
|
||
RevisionExtra:
|
||
title: RevisionExtra
|
||
type: object
|
||
properties:
|
||
img:
|
||
title: Image
|
||
type: string
|
||
SubjectRevision:
|
||
title: SubjectRevision
|
||
allOf:
|
||
- $ref: '#/components/schemas/Revision'
|
||
- type: object
|
||
properties:
|
||
data:
|
||
$ref: '#/components/schemas/SubjectRevisionData'
|
||
SubjectRevisionData:
|
||
title: SubjectRevisionData
|
||
required:
|
||
- field_eps
|
||
- field_infobox
|
||
- field_summary
|
||
- name
|
||
- name_cn
|
||
- platform
|
||
- subject_id
|
||
- type
|
||
- type_id
|
||
- vote_field
|
||
type: object
|
||
properties:
|
||
field_eps:
|
||
title: Field EPs
|
||
type: integer
|
||
field_infobox:
|
||
title: Field Infobox
|
||
type: string
|
||
field_summary:
|
||
title: Field Summary
|
||
type: string
|
||
name:
|
||
title: Name
|
||
type: string
|
||
name_cn:
|
||
title: Name CN
|
||
type: string
|
||
platform:
|
||
title: Platform
|
||
type: integer
|
||
subject_id:
|
||
title: Subject ID
|
||
type: integer
|
||
type:
|
||
title: Type
|
||
type: integer
|
||
type_id:
|
||
title: Type ID
|
||
type: integer
|
||
vote_field:
|
||
title: Vote Field
|
||
type: string
|
||
CharacterRevision:
|
||
title: CharacterRevision
|
||
allOf:
|
||
- $ref: '#/components/schemas/Revision'
|
||
- type: object
|
||
properties:
|
||
data:
|
||
title: Data
|
||
additionalProperties:
|
||
$ref: '#/components/schemas/CharacterRevisionDataItem'
|
||
CharacterRevisionDataItem:
|
||
title: CharacterRevisionDataItem
|
||
required:
|
||
- infobox
|
||
- summary
|
||
- name
|
||
- extra
|
||
type: object
|
||
properties:
|
||
infobox:
|
||
title: Character Infobox
|
||
type: string
|
||
summary:
|
||
title: Character Summary
|
||
type: string
|
||
name:
|
||
title: Character Name
|
||
type: string
|
||
extra:
|
||
$ref: '#/components/schemas/RevisionExtra'
|
||
EpType:
|
||
title: EpType
|
||
enum:
|
||
- 0
|
||
- 1
|
||
- 2
|
||
- 3
|
||
- 4
|
||
- 5
|
||
- 6
|
||
type: integer
|
||
description: |-
|
||
本篇 = 0
|
||
特别篇 = 1
|
||
OP = 2
|
||
ED = 3
|
||
预告/宣传/广告 = 4
|
||
MAD = 5
|
||
其他 = 6
|
||
x-ms-enum:
|
||
name: EpType
|
||
modelAsString: false
|
||
values:
|
||
- MainStory
|
||
- SP
|
||
- OP
|
||
- ED
|
||
- PV
|
||
- MAD
|
||
- Other
|
||
x-enum-varnames:
|
||
- MainStory
|
||
- SP
|
||
- OP
|
||
- ED
|
||
- PV
|
||
- MAD
|
||
- Other
|
||
Episode:
|
||
title: Episode
|
||
required:
|
||
- id
|
||
- type
|
||
- name
|
||
- name_cn
|
||
- sort
|
||
- airdate
|
||
- comment
|
||
- duration
|
||
- desc
|
||
- disc
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
type:
|
||
title: Type
|
||
type: integer
|
||
description: '`0` 本篇,`1` SP,`2` OP,`3` ED'
|
||
name:
|
||
title: Name
|
||
type: string
|
||
name_cn:
|
||
title: Name Cn
|
||
type: string
|
||
sort:
|
||
title: Sort
|
||
type: number
|
||
description: 同类条目的排序和集数
|
||
ep:
|
||
title: Ep
|
||
type: number
|
||
description: 条目内的集数, 从`1`开始。非本篇剧集的此字段无意义
|
||
airdate:
|
||
title: Airdate
|
||
type: string
|
||
comment:
|
||
title: Comment
|
||
type: integer
|
||
duration:
|
||
title: Duration
|
||
description: 维基人填写的原始时长
|
||
type: string
|
||
desc:
|
||
title: Desc
|
||
type: string
|
||
description: 简介
|
||
disc:
|
||
title: Disc
|
||
type: integer
|
||
description: 音乐曲目的碟片数
|
||
duration_seconds:
|
||
description: 服务器解析的时长,无法解析时为 `0`
|
||
type: integer
|
||
example:
|
||
airdate: ''
|
||
comment: 0
|
||
desc: ''
|
||
disc: 0
|
||
duration: ''
|
||
ep: 6
|
||
id: 8
|
||
name: 蒼と白の境界線
|
||
name_cn: ''
|
||
sort: 6
|
||
subject_id: 15
|
||
type: 0
|
||
duration_seconds: 1440
|
||
EpisodeDetail:
|
||
title: EpisodeDetail
|
||
required:
|
||
- id
|
||
- type
|
||
- name
|
||
- name_cn
|
||
- sort
|
||
- airdate
|
||
- comment
|
||
- duration
|
||
- desc
|
||
- disc
|
||
- subject_id
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
type:
|
||
title: Type
|
||
type: integer
|
||
description: '`0` 本篇,`1` SP,`2` OP,`3` ED'
|
||
name:
|
||
title: Name
|
||
type: string
|
||
name_cn:
|
||
title: Name Cn
|
||
type: string
|
||
sort:
|
||
title: Sort
|
||
type: number
|
||
description: 同类条目的排序和集数
|
||
ep:
|
||
title: Ep
|
||
type: number
|
||
description: 条目内的集数, 从`1`开始。非本篇剧集的此字段无意义
|
||
airdate:
|
||
title: Airdate
|
||
type: string
|
||
comment:
|
||
title: Comment
|
||
type: integer
|
||
duration:
|
||
title: Duration
|
||
type: string
|
||
desc:
|
||
title: Desc
|
||
type: string
|
||
description: 简介
|
||
disc:
|
||
title: Disc
|
||
type: integer
|
||
description: 音乐曲目的碟片数
|
||
subject_id:
|
||
title: Subject ID
|
||
type: integer
|
||
ErrorDetail:
|
||
title: ErrorDetail
|
||
required:
|
||
- title
|
||
- description
|
||
type: object
|
||
properties:
|
||
title:
|
||
title: Title
|
||
type: string
|
||
description:
|
||
title: Description
|
||
type: string
|
||
details:
|
||
title: Detail
|
||
oneOf:
|
||
- type: string
|
||
- type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
description: error message
|
||
path:
|
||
type: string
|
||
description: request path
|
||
Images:
|
||
title: Images
|
||
required:
|
||
- large
|
||
- common
|
||
- medium
|
||
- small
|
||
- grid
|
||
type: object
|
||
properties:
|
||
large:
|
||
title: Large
|
||
type: string
|
||
common:
|
||
title: Common
|
||
type: string
|
||
medium:
|
||
title: Medium
|
||
type: string
|
||
small:
|
||
title: Small
|
||
type: string
|
||
grid:
|
||
title: Grid
|
||
type: string
|
||
Index:
|
||
title: Index
|
||
required:
|
||
- id
|
||
- title
|
||
- desc
|
||
- stat
|
||
- created_at
|
||
- updated_at
|
||
- creator
|
||
- ban
|
||
- nsfw
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
title:
|
||
title: Title
|
||
type: string
|
||
desc:
|
||
title: Desc
|
||
type: string
|
||
total:
|
||
title: Total
|
||
type: integer
|
||
description: 收录条目总数
|
||
default: 0
|
||
stat:
|
||
title: Stat
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/Stat'
|
||
description: 目录评论及收藏数
|
||
created_at:
|
||
title: Created At
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
title: Updated At
|
||
type: string
|
||
format: date-time
|
||
creator:
|
||
$ref: '#/components/schemas/Creator'
|
||
ban:
|
||
title: Ban
|
||
deprecated: true
|
||
type: boolean
|
||
description: deprecated, always false.
|
||
nsfw:
|
||
title: 目录是否包括 nsfw 条目
|
||
type: boolean
|
||
IndexSubject:
|
||
title: IndexSubject
|
||
required:
|
||
- id
|
||
- type
|
||
- name
|
||
- comment
|
||
- added_at
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
type:
|
||
title: Type
|
||
type: integer
|
||
name:
|
||
title: Name
|
||
type: string
|
||
images:
|
||
$ref: '#/components/schemas/Images'
|
||
infobox:
|
||
$ref: '#/components/schemas/WikiV0'
|
||
date:
|
||
title: Date
|
||
type: string
|
||
comment:
|
||
title: Comment
|
||
type: string
|
||
added_at:
|
||
title: Added At
|
||
type: string
|
||
format: date-time
|
||
description: 同名字段意义同<a href="#model-Subject">Subject</a>
|
||
IndexBasicInfo:
|
||
title: IndexBasicInfo
|
||
type: object
|
||
description: 新增或修改条目的内容,同名字段意义同<a href="#model-Subject">Subject</a>
|
||
properties:
|
||
title:
|
||
title: Title
|
||
type: string
|
||
description:
|
||
title: Description
|
||
type: string
|
||
IndexSubjectAddInfo:
|
||
title: IndexBasicInfo
|
||
type: object
|
||
description: 新增某条目到目录的请求信息
|
||
properties:
|
||
subject_id:
|
||
title: Subject ID
|
||
type: integer
|
||
sort:
|
||
title: Sort
|
||
type: integer
|
||
description: 排序条件,越小越靠前
|
||
comment:
|
||
title: Comment
|
||
type: string
|
||
IndexSubjectEditInfo:
|
||
title: IndexBasicInfo
|
||
type: object
|
||
description: 修改目录中条目的信息
|
||
properties:
|
||
sort:
|
||
title: Sort
|
||
type: integer
|
||
description: 排序条件,越小越靠前
|
||
comment:
|
||
title: Comment
|
||
type: string
|
||
WikiV0:
|
||
title: Infobox
|
||
type: array
|
||
items:
|
||
title: Item
|
||
required:
|
||
- key
|
||
- value
|
||
type: object
|
||
properties:
|
||
key:
|
||
title: Key
|
||
type: string
|
||
value:
|
||
title: Value
|
||
type: object
|
||
anyOf:
|
||
- type: string
|
||
- type: array
|
||
items:
|
||
anyOf:
|
||
- title: KV
|
||
required:
|
||
- k
|
||
- v
|
||
type: object
|
||
properties:
|
||
k:
|
||
title: K
|
||
type: string
|
||
v:
|
||
title: V
|
||
type: string
|
||
- title: V
|
||
required:
|
||
- v
|
||
type: object
|
||
properties:
|
||
v:
|
||
title: V
|
||
type: string
|
||
example:
|
||
- key: 简体中文名
|
||
value: 鲁路修·兰佩路基
|
||
- key: 别名
|
||
value:
|
||
- v: L.L.
|
||
- v: 勒鲁什
|
||
- v: 鲁鲁修
|
||
- v: ゼロ
|
||
- v: Zero
|
||
- k: 英文名
|
||
v: Lelouch Lamperouge
|
||
- k: 第二中文名
|
||
v: 鲁路修·冯·布里塔尼亚
|
||
- k: 英文名二
|
||
v: Lelouch Vie Britannia
|
||
- k: 日文名
|
||
v: ルルーシュ・ヴィ・ブリタニア
|
||
- key: 性别
|
||
value: 男
|
||
- key: 生日
|
||
value: 12月5日
|
||
- key: 血型
|
||
value: A型
|
||
- key: 身高
|
||
value: 178cm→181cm
|
||
- key: 体重
|
||
value: 54kg
|
||
- key: 引用来源
|
||
value: Wikipedia
|
||
Page:
|
||
type: object
|
||
required:
|
||
- total
|
||
- limit
|
||
- offset
|
||
properties:
|
||
total:
|
||
title: Total
|
||
type: integer
|
||
limit:
|
||
title: Limit
|
||
type: integer
|
||
offset:
|
||
title: Offset
|
||
type: integer
|
||
Paged_Episode:
|
||
title: Paged[Episode]
|
||
type: object
|
||
properties:
|
||
total:
|
||
title: Total
|
||
type: integer
|
||
default: 0
|
||
limit:
|
||
title: Limit
|
||
type: integer
|
||
default: 0
|
||
offset:
|
||
title: Offset
|
||
type: integer
|
||
default: 0
|
||
data:
|
||
title: Data
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Episode'
|
||
default: [ ]
|
||
Paged_IndexSubject:
|
||
title: Paged[IndexSubject]
|
||
type: object
|
||
properties:
|
||
total:
|
||
title: Total
|
||
type: integer
|
||
default: 0
|
||
limit:
|
||
title: Limit
|
||
type: integer
|
||
default: 0
|
||
offset:
|
||
title: Offset
|
||
type: integer
|
||
default: 0
|
||
data:
|
||
title: Data
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/IndexSubject'
|
||
default: [ ]
|
||
Paged_Revision:
|
||
title: Paged[Revision]
|
||
type: object
|
||
properties:
|
||
total:
|
||
title: Total
|
||
type: integer
|
||
default: 0
|
||
limit:
|
||
title: Limit
|
||
type: integer
|
||
default: 0
|
||
offset:
|
||
title: Offset
|
||
type: integer
|
||
default: 0
|
||
data:
|
||
title: Data
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Revision'
|
||
default: [ ]
|
||
Paged_UserCollection:
|
||
title: Paged[UserCollection]
|
||
type: object
|
||
properties:
|
||
total:
|
||
title: Total
|
||
type: integer
|
||
default: 0
|
||
limit:
|
||
title: Limit
|
||
type: integer
|
||
default: 0
|
||
offset:
|
||
title: Offset
|
||
type: integer
|
||
default: 0
|
||
data:
|
||
title: Data
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/UserSubjectCollection'
|
||
default: [ ]
|
||
Person:
|
||
title: Person
|
||
required:
|
||
- id
|
||
- name
|
||
- type
|
||
- career
|
||
- short_summary
|
||
- locked
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
name:
|
||
title: Name
|
||
type: string
|
||
type:
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonType'
|
||
description: '`1`, `2`, `3` 表示 `个人`, `公司`, `组合`'
|
||
career:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/PersonCareer'
|
||
images:
|
||
title: Images
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonImages'
|
||
description: object with some size of images, this object maybe `null`
|
||
short_summary:
|
||
title: Short Summary
|
||
type: string
|
||
locked:
|
||
title: Locked
|
||
type: boolean
|
||
PersonCareer:
|
||
title: PersonCareer
|
||
enum:
|
||
- producer
|
||
- mangaka
|
||
- artist
|
||
- seiyu
|
||
- writer
|
||
- illustrator
|
||
- actor
|
||
type: string
|
||
description: An enumeration.
|
||
PersonCharacter:
|
||
title: PersonCharacter
|
||
required:
|
||
- id
|
||
- name
|
||
- type
|
||
- subject_id
|
||
- subject_name
|
||
- subject_name_cn
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
name:
|
||
title: Name
|
||
type: string
|
||
type:
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/CharacterType'
|
||
description: 角色,机体,舰船,组织...
|
||
images:
|
||
title: Images
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonImages'
|
||
description: object with some size of images, this object maybe `null`
|
||
subject_id:
|
||
title: Subject ID
|
||
type: integer
|
||
subject_name:
|
||
title: Subject Name
|
||
type: string
|
||
subject_name_cn:
|
||
title: Subject Name Cn
|
||
type: string
|
||
staff:
|
||
title: Staff
|
||
type: string
|
||
PersonDetail:
|
||
title: PersonDetail
|
||
required:
|
||
- id
|
||
- name
|
||
- type
|
||
- career
|
||
- summary
|
||
- locked
|
||
- last_modified
|
||
- stat
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
name:
|
||
title: Name
|
||
type: string
|
||
type:
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonType'
|
||
description: '`1`, `2`, `3` 表示 `个人`, `公司`, `组合`'
|
||
career:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/PersonCareer'
|
||
images:
|
||
title: Images
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonImages'
|
||
description: object with some size of images, this object maybe `null`
|
||
summary:
|
||
title: Summary
|
||
type: string
|
||
locked:
|
||
title: Locked
|
||
type: boolean
|
||
last_modified:
|
||
title: Last Modified
|
||
type: string
|
||
description: >-
|
||
currently it's latest user comment time, it will be replaced by wiki
|
||
modified date in the future
|
||
format: date-time
|
||
infobox:
|
||
title: Infobox
|
||
type: array
|
||
items:
|
||
type: object
|
||
description: |-
|
||
server parsed infobox, a map from key to string or tuple
|
||
null if server infobox is not valid
|
||
gender:
|
||
title: Gender
|
||
type: string
|
||
description: parsed from wiki, maybe null
|
||
blood_type:
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/BloodType'
|
||
description: parsed from wiki, maybe null, `1, 2, 3, 4` for `A, B, AB, O`
|
||
birth_year:
|
||
title: Birth Year
|
||
type: integer
|
||
description: parsed from wiki, maybe `null`
|
||
birth_mon:
|
||
title: Birth Mon
|
||
type: integer
|
||
description: parsed from wiki, maybe `null`
|
||
birth_day:
|
||
title: Birth Day
|
||
type: integer
|
||
description: parsed from wiki, maybe `null`
|
||
stat:
|
||
$ref: '#/components/schemas/Stat'
|
||
PersonImages:
|
||
title: PersonImages
|
||
required:
|
||
- large
|
||
- medium
|
||
- small
|
||
- grid
|
||
type: object
|
||
properties:
|
||
large:
|
||
title: Large
|
||
type: string
|
||
medium:
|
||
title: Medium
|
||
type: string
|
||
small:
|
||
title: Small
|
||
type: string
|
||
grid:
|
||
title: Grid
|
||
type: string
|
||
PersonType:
|
||
title: PersonType
|
||
enum:
|
||
- 1
|
||
- 2
|
||
- 3
|
||
type: integer
|
||
description: '`1`, `2`, `3` 表示 `个人`, `公司`, `组合`'
|
||
x-ms-enum:
|
||
name: PersonType
|
||
modelAsString: false
|
||
values:
|
||
- Individual
|
||
- Corporation
|
||
- Association
|
||
x-enum-varnames:
|
||
- Individual
|
||
- Corporation
|
||
- Association
|
||
RelatedCharacter:
|
||
title: RelatedCharacter
|
||
required:
|
||
- id
|
||
- name
|
||
- type
|
||
- relation
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
name:
|
||
title: Name
|
||
type: string
|
||
type:
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/CharacterType'
|
||
description: 角色,机体,舰船,组织...
|
||
images:
|
||
title: Images
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonImages'
|
||
description: object with some size of images, this object maybe `null`
|
||
relation:
|
||
title: Relation
|
||
type: string
|
||
actors:
|
||
title: Actors
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Person'
|
||
description: 演员列表
|
||
default: [ ]
|
||
RelatedPerson:
|
||
title: RelatedPerson
|
||
required:
|
||
- id
|
||
- name
|
||
- type
|
||
- career
|
||
- relation
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
name:
|
||
title: Name
|
||
type: string
|
||
type:
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonType'
|
||
description: '`1`, `2`, `3` 表示 `个人`, `公司`, `组合`'
|
||
career:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/PersonCareer'
|
||
images:
|
||
title: Images
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/PersonImages'
|
||
description: object with some size of images, this object maybe `null`
|
||
relation:
|
||
title: Relation
|
||
type: string
|
||
Revision:
|
||
title: Revision
|
||
required:
|
||
- id
|
||
- type
|
||
- summary
|
||
- created_at
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
type:
|
||
title: Type
|
||
type: integer
|
||
creator:
|
||
$ref: '#/components/schemas/Creator'
|
||
summary:
|
||
title: Summary
|
||
type: string
|
||
created_at:
|
||
title: Created At
|
||
type: string
|
||
format: date-time
|
||
Stat:
|
||
title: Stat
|
||
required:
|
||
- comments
|
||
- collects
|
||
type: object
|
||
properties:
|
||
comments:
|
||
title: Comments
|
||
type: integer
|
||
collects:
|
||
title: Collects
|
||
type: integer
|
||
Subject:
|
||
title: Subject
|
||
required:
|
||
- id
|
||
- type
|
||
- name
|
||
- name_cn
|
||
- summary
|
||
- nsfw
|
||
- locked
|
||
- platform
|
||
- volumes
|
||
- eps
|
||
- total_episodes
|
||
- rating
|
||
- images
|
||
- collection
|
||
- tags
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
type:
|
||
title: Type
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/SubjectType'
|
||
name:
|
||
title: Name
|
||
type: string
|
||
name_cn:
|
||
title: Name Cn
|
||
type: string
|
||
summary:
|
||
title: Summary
|
||
type: string
|
||
nsfw:
|
||
title: Nsfw
|
||
type: boolean
|
||
locked:
|
||
title: Locked
|
||
type: boolean
|
||
date:
|
||
title: Date
|
||
type: string
|
||
description: air date in `YYYY-MM-DD` format
|
||
platform:
|
||
title: Platform
|
||
type: string
|
||
description: TV, Web, 欧美剧, PS4...
|
||
images:
|
||
$ref: '#/components/schemas/Images'
|
||
infobox:
|
||
$ref: '#/components/schemas/WikiV0'
|
||
volumes:
|
||
title: Volumes
|
||
type: integer
|
||
description: 书籍条目的册数,由旧服务端从wiki中解析
|
||
eps:
|
||
title: Eps
|
||
type: integer
|
||
description: 由旧服务端从wiki中解析,对于书籍条目为`话数`
|
||
total_episodes:
|
||
title: Total Episodes
|
||
type: integer
|
||
description: 数据库中的章节数量
|
||
rating:
|
||
title: Rating
|
||
required:
|
||
- rank
|
||
- total
|
||
- count
|
||
- score
|
||
type: object
|
||
properties:
|
||
rank:
|
||
title: Rank
|
||
type: integer
|
||
total:
|
||
title: Total
|
||
type: integer
|
||
count:
|
||
title: Count
|
||
type: object
|
||
properties:
|
||
'1':
|
||
type: integer
|
||
'2':
|
||
type: integer
|
||
'3':
|
||
type: integer
|
||
'4':
|
||
type: integer
|
||
'5':
|
||
type: integer
|
||
'6':
|
||
type: integer
|
||
'7':
|
||
type: integer
|
||
'8':
|
||
type: integer
|
||
'9':
|
||
type: integer
|
||
'10':
|
||
type: integer
|
||
score:
|
||
title: Score
|
||
type: number
|
||
collection:
|
||
title: Collection
|
||
required:
|
||
- wish
|
||
- collect
|
||
- doing
|
||
- on_hold
|
||
- dropped
|
||
type: object
|
||
properties:
|
||
wish:
|
||
title: Wish
|
||
type: integer
|
||
collect:
|
||
title: Collect
|
||
type: integer
|
||
doing:
|
||
title: Doing
|
||
type: integer
|
||
on_hold:
|
||
title: On Hold
|
||
type: integer
|
||
dropped:
|
||
title: Dropped
|
||
type: integer
|
||
tags:
|
||
$ref: '#/components/schemas/SubjectTags'
|
||
SlimSubject:
|
||
title: SlimSubject
|
||
required:
|
||
- images
|
||
- name
|
||
- name_cn
|
||
- short_summary
|
||
- tags
|
||
- score
|
||
- type
|
||
- id
|
||
- eps
|
||
- volumes
|
||
- collection_total
|
||
- rank
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
type:
|
||
title: Type
|
||
type: integer
|
||
allOf:
|
||
- $ref: '#/components/schemas/SubjectType'
|
||
name:
|
||
title: Name
|
||
type: string
|
||
name_cn:
|
||
title: Name Cn
|
||
type: string
|
||
short_summary:
|
||
title: Summary
|
||
type: string
|
||
description: 截短后的条目描述。
|
||
date:
|
||
title: Date
|
||
type: string
|
||
description: air date in `YYYY-MM-DD` format
|
||
images:
|
||
$ref: '#/components/schemas/Images'
|
||
volumes:
|
||
title: Volumes
|
||
type: integer
|
||
description: 书籍条目的册数,由旧服务端从wiki中解析
|
||
eps:
|
||
title: Eps
|
||
type: integer
|
||
description: 由旧服务端从wiki中解析,对于书籍条目为`话数`
|
||
collection_total:
|
||
description: 收藏人数
|
||
title: Total
|
||
type: integer
|
||
score:
|
||
description: 分数
|
||
title: Total
|
||
type: number
|
||
tags:
|
||
description: 前 10 个 tag
|
||
allOf:
|
||
- $ref: '#/components/schemas/SubjectTags'
|
||
SubjectTags:
|
||
title: Tags
|
||
type: array
|
||
items:
|
||
title: Tag
|
||
required:
|
||
- name
|
||
- count
|
||
type: object
|
||
properties:
|
||
name:
|
||
title: Name
|
||
type: string
|
||
count:
|
||
title: Count
|
||
type: integer
|
||
SubjectType:
|
||
title: SubjectType
|
||
example: 2
|
||
enum:
|
||
- 1
|
||
- 2
|
||
- 3
|
||
- 4
|
||
- 6
|
||
type: integer
|
||
description: |-
|
||
条目类型
|
||
- `1` 为 书籍
|
||
- `2` 为 动画
|
||
- `3` 为 音乐
|
||
- `4` 为 游戏
|
||
- `6` 为 三次元
|
||
|
||
没有 `5`
|
||
x-ms-enum:
|
||
name: SubjectType
|
||
modelAsString: false
|
||
values:
|
||
- Book
|
||
- Anime
|
||
- Music
|
||
- Game
|
||
- Real
|
||
x-enum-varnames:
|
||
- Book
|
||
- Anime
|
||
- Music
|
||
- Game
|
||
- Real
|
||
UserSubjectCollection:
|
||
title: UserSubjectCollection
|
||
required:
|
||
- subject_id
|
||
- subject_type
|
||
- rate
|
||
- type
|
||
- tags
|
||
- ep_status
|
||
- vol_status
|
||
- updated_at
|
||
- private
|
||
type: object
|
||
properties:
|
||
subject_id:
|
||
title: Subject ID
|
||
type: integer
|
||
example: 8
|
||
subject_type:
|
||
$ref: '#/components/schemas/SubjectType'
|
||
rate:
|
||
example: 4
|
||
title: Rate
|
||
type: integer
|
||
type:
|
||
$ref: '#/components/schemas/SubjectCollectionType'
|
||
comment:
|
||
title: Comment
|
||
type: string
|
||
example: 看看
|
||
tags:
|
||
title: Tags
|
||
type: array
|
||
example:
|
||
- 柯南
|
||
- 万年小学生
|
||
- 推理
|
||
- 青山刚昌
|
||
- TV
|
||
items:
|
||
type: string
|
||
ep_status:
|
||
title: Ep Status
|
||
type: integer
|
||
example: 5
|
||
vol_status:
|
||
title: Vol Status
|
||
type: integer
|
||
example: 0
|
||
updated_at:
|
||
example: '2022-06-19T18:44:13.6140127+08:00'
|
||
description: 本时间并不代表条目的收藏时间。修改评分,评价,章节观看状态等收藏信息时未更新此时间是一个 bug。请不要依赖此特性
|
||
title: Updated At
|
||
type: string
|
||
format: date-time
|
||
private:
|
||
title: Private
|
||
type: boolean
|
||
subject:
|
||
$ref: '#/components/schemas/SlimSubject'
|
||
UserSubjectCollectionModifyPayload:
|
||
title: UserSubjectCollectionModifyPayload
|
||
type: object
|
||
description: 所有的字段均可选
|
||
properties:
|
||
type:
|
||
description: 修改条目收藏类型
|
||
allOf:
|
||
- $ref: '#/components/schemas/SubjectCollectionType'
|
||
rate:
|
||
description: 评分,`0` 表示删除评分
|
||
type: integer
|
||
maximum: 10
|
||
minimum: 0
|
||
exclusiveMaximum: false
|
||
exclusiveMinimum: false
|
||
ep_status:
|
||
description: 只能用于修改书籍条目进度
|
||
type: integer
|
||
minimum: 0
|
||
exclusiveMinimum: false
|
||
vol_status:
|
||
description: 只能用于修改书籍条目进度
|
||
type: integer
|
||
minimum: 0
|
||
exclusiveMinimum: false
|
||
comment:
|
||
description: 评价
|
||
type: string
|
||
private:
|
||
description: 仅自己可见
|
||
type: boolean
|
||
tags:
|
||
title: 标签
|
||
description: 不传或者 `null` 都会被忽略,传 `[]` 则会删除所有 tag。
|
||
type: array
|
||
items:
|
||
type: string
|
||
description: 不能包含空格
|
||
UserEpisodeCollection:
|
||
additionalProperties: false
|
||
properties:
|
||
episode:
|
||
$ref: '#/components/schemas/Episode'
|
||
type:
|
||
$ref: '#/components/schemas/EpisodeCollectionType'
|
||
required:
|
||
- episode
|
||
- type
|
||
type: object
|
||
v0_RelatedSubject:
|
||
title: RelatedSubject
|
||
required:
|
||
- id
|
||
- staff
|
||
- name_cn
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
staff:
|
||
title: Staff
|
||
type: string
|
||
name:
|
||
title: Name
|
||
type: string
|
||
name_cn:
|
||
title: Name Cn
|
||
type: string
|
||
image:
|
||
title: Image
|
||
type: string
|
||
v0_subject_relation:
|
||
title: SubjectRelation
|
||
required:
|
||
- id
|
||
- type
|
||
- name
|
||
- name_cn
|
||
- relation
|
||
type: object
|
||
properties:
|
||
id:
|
||
title: ID
|
||
type: integer
|
||
type:
|
||
title: Type
|
||
type: integer
|
||
name:
|
||
title: Name
|
||
type: string
|
||
name_cn:
|
||
title: Name Cn
|
||
type: string
|
||
images:
|
||
$ref: '#/components/schemas/Images'
|
||
relation:
|
||
title: Relation
|
||
type: string
|
||
securitySchemes:
|
||
OptionalHTTPBearer:
|
||
type: http
|
||
description: 不强制要求用户认证,但是可能看不到某些敏感内容内容(如 NSFW 或者仅用户自己可见的收藏)
|
||
scheme: Bearer
|
||
HTTPBearer:
|
||
type: http
|
||
description: 需要使用 access token 进行认证
|
||
scheme: Bearer
|
||
responses:
|
||
'400':
|
||
description: Bad Request
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'401':
|
||
description: Unauthorized
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'404':
|
||
description: Not Found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
'500':
|
||
description: Internal Server Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorDetail'
|
||
200-no-content:
|
||
description: Successful Response
|