385 lines
6.9 KiB
YAML
385 lines
6.9 KiB
YAML
Response:
|
|
type: object
|
|
required:
|
|
- data
|
|
properties:
|
|
data: {}
|
|
meta:
|
|
type: object
|
|
properties:
|
|
total:
|
|
type: integer
|
|
description: 总记录数
|
|
page:
|
|
type: integer
|
|
description: 当前页码
|
|
per_page:
|
|
type: integer
|
|
description: 每页记录数
|
|
total_pages:
|
|
type: integer
|
|
description: 总页数
|
|
links:
|
|
type: object
|
|
properties:
|
|
self:
|
|
type: string
|
|
format: uri
|
|
first:
|
|
type: string
|
|
format: uri
|
|
last:
|
|
type: string
|
|
format: uri
|
|
prev:
|
|
type: string
|
|
format: uri
|
|
next:
|
|
type: string
|
|
format: uri
|
|
|
|
Error:
|
|
type: object
|
|
required:
|
|
- error
|
|
properties:
|
|
error:
|
|
type: object
|
|
required:
|
|
- code
|
|
- message
|
|
properties:
|
|
code:
|
|
type: string
|
|
message:
|
|
type: string
|
|
details:
|
|
type: object
|
|
|
|
User:
|
|
type: object
|
|
required:
|
|
- id
|
|
- username
|
|
- role
|
|
- status
|
|
properties:
|
|
id:
|
|
type: integer
|
|
username:
|
|
type: string
|
|
minLength: 3
|
|
maxLength: 32
|
|
display_name:
|
|
type: string
|
|
maxLength: 64
|
|
description: 用户显示名称
|
|
email:
|
|
type: string
|
|
format: email
|
|
role:
|
|
type: string
|
|
enum:
|
|
- admin
|
|
- editor
|
|
- contributor
|
|
status:
|
|
type: string
|
|
enum:
|
|
- active
|
|
- inactive
|
|
- banned
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
|
|
Post:
|
|
type: object
|
|
required:
|
|
- id
|
|
- slug
|
|
- status
|
|
- contents
|
|
properties:
|
|
id:
|
|
type: integer
|
|
slug:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum:
|
|
- draft
|
|
- published
|
|
contents:
|
|
type: array
|
|
items:
|
|
$ref: '#/PostContent'
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
|
|
PostContent:
|
|
type: object
|
|
required:
|
|
- language_code
|
|
- title
|
|
- content_markdown
|
|
properties:
|
|
language_code:
|
|
type: string
|
|
enum:
|
|
- en
|
|
- zh-Hans
|
|
- zh-Hant
|
|
title:
|
|
type: string
|
|
content_markdown:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
meta_keywords:
|
|
type: string
|
|
meta_description:
|
|
type: string
|
|
|
|
Category:
|
|
type: object
|
|
required:
|
|
- id
|
|
- contents
|
|
properties:
|
|
id:
|
|
type: integer
|
|
contents:
|
|
type: array
|
|
items:
|
|
$ref: '#/CategoryContent'
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
|
|
CategoryContent:
|
|
type: object
|
|
required:
|
|
- language_code
|
|
- name
|
|
- slug
|
|
properties:
|
|
language_code:
|
|
type: string
|
|
enum:
|
|
- en
|
|
- zh-Hans
|
|
- zh-Hant
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
slug:
|
|
type: string
|
|
|
|
Contributor:
|
|
type: object
|
|
required:
|
|
- id
|
|
- name
|
|
properties:
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
avatar_url:
|
|
type: string
|
|
format: uri
|
|
bio:
|
|
type: string
|
|
social_links:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- type
|
|
- value
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- WeChat
|
|
- Bilibili
|
|
- Douyin/TikTok
|
|
- Kuaishou
|
|
- NCM
|
|
- Xiaohongshu
|
|
- QQ_Personal
|
|
- QQ_Group
|
|
- QQ_Channel
|
|
- Zhihu
|
|
- SinaWeibo
|
|
- Feishu/Lark
|
|
- DingTalk
|
|
- Douban
|
|
- CoolAPK
|
|
- Tieba
|
|
- Keyoxide
|
|
- GitHub
|
|
- Codeberg
|
|
- SourceHut
|
|
- Forgejo
|
|
- Gitea
|
|
- Facebook
|
|
- Instagram
|
|
- Twitter/X
|
|
- Snapchat
|
|
- Telegram
|
|
- WhatsApp
|
|
- LinkedIn
|
|
- Reddit
|
|
- YouTube
|
|
- Pinterest
|
|
- Bluesky
|
|
- Mastodon
|
|
- Fediverse
|
|
- Matrix
|
|
- XMPP
|
|
- IRC
|
|
- HomePage
|
|
- AFDian
|
|
- Paypal
|
|
- LiberPay
|
|
- Patreon
|
|
- Ko-Fi
|
|
- Custom
|
|
name:
|
|
type: string
|
|
description: 'Optional name for the social link, required only for Custom type'
|
|
value:
|
|
type: string
|
|
description: The actual link or identifier value
|
|
user_id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
|
|
Media:
|
|
type: object
|
|
required:
|
|
- id
|
|
- url
|
|
- mime_type
|
|
- original_name
|
|
- storage_id
|
|
- size
|
|
properties:
|
|
id:
|
|
type: integer
|
|
storage_id:
|
|
type: string
|
|
description: 存储系统中的唯一标识符
|
|
original_name:
|
|
type: string
|
|
description: 原始文件名
|
|
url:
|
|
type: string
|
|
format: uri
|
|
description: 文件访问 URL
|
|
mime_type:
|
|
type: string
|
|
description: 文件的 MIME 类型,图片将被转换为 image/webp
|
|
size:
|
|
type: integer
|
|
format: int64
|
|
description: 文件大小(字节)
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
created_by:
|
|
type: string
|
|
description: 创建者 ID
|
|
|
|
DailyCategory:
|
|
type: object
|
|
required:
|
|
- id
|
|
- contents
|
|
properties:
|
|
id:
|
|
type: integer
|
|
contents:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- language_code
|
|
- name
|
|
properties:
|
|
language_code:
|
|
type: string
|
|
enum:
|
|
- en
|
|
- zh-Hans
|
|
- zh-Hant
|
|
name:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
|
|
Daily:
|
|
type: object
|
|
required:
|
|
- id
|
|
- category
|
|
- image_url
|
|
- contents
|
|
properties:
|
|
id:
|
|
type: string
|
|
pattern: '^\d{6}$'
|
|
examples:
|
|
- '250206'
|
|
category:
|
|
$ref: '#/DailyCategory'
|
|
image_url:
|
|
type: string
|
|
format: uri
|
|
contents:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- language_code
|
|
- quote
|
|
properties:
|
|
language_code:
|
|
type: string
|
|
enum:
|
|
- en
|
|
- zh-Hans
|
|
- zh-Hant
|
|
quote:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|