fix
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1035,11 +1035,42 @@ definitions:
|
|||||||
view_count:
|
view_count:
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
responses.ArticleListItemResponse:
|
||||||
|
properties:
|
||||||
|
category:
|
||||||
|
$ref: '#/definitions/tyapi-server_internal_application_article_dto_responses.CategoryInfoResponse'
|
||||||
|
category_id:
|
||||||
|
type: string
|
||||||
|
cover_image:
|
||||||
|
type: string
|
||||||
|
created_at:
|
||||||
|
type: string
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
is_featured:
|
||||||
|
type: boolean
|
||||||
|
published_at:
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
summary:
|
||||||
|
type: string
|
||||||
|
tags:
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/responses.TagInfoResponse'
|
||||||
|
type: array
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
updated_at:
|
||||||
|
type: string
|
||||||
|
view_count:
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
responses.ArticleListResponse:
|
responses.ArticleListResponse:
|
||||||
properties:
|
properties:
|
||||||
items:
|
items:
|
||||||
items:
|
items:
|
||||||
$ref: '#/definitions/responses.ArticleInfoResponse'
|
$ref: '#/definitions/responses.ArticleListItemResponse'
|
||||||
type: array
|
type: array
|
||||||
page:
|
page:
|
||||||
type: integer
|
type: integer
|
||||||
@@ -2320,7 +2351,7 @@ paths:
|
|||||||
- Bearer: []
|
- Bearer: []
|
||||||
summary: 创建分类
|
summary: 创建分类
|
||||||
tags:
|
tags:
|
||||||
- 文章分类管理
|
- 文章分类-管理端
|
||||||
/api/v1/admin/article-categories/{id}:
|
/api/v1/admin/article-categories/{id}:
|
||||||
delete:
|
delete:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -2364,7 +2395,7 @@ paths:
|
|||||||
- Bearer: []
|
- Bearer: []
|
||||||
summary: 删除分类
|
summary: 删除分类
|
||||||
tags:
|
tags:
|
||||||
- 文章分类管理
|
- 文章分类-管理端
|
||||||
put:
|
put:
|
||||||
consumes:
|
consumes:
|
||||||
- application/json
|
- application/json
|
||||||
@@ -2413,7 +2444,7 @@ paths:
|
|||||||
- Bearer: []
|
- Bearer: []
|
||||||
summary: 更新分类
|
summary: 更新分类
|
||||||
tags:
|
tags:
|
||||||
- 文章分类管理
|
- 文章分类-管理端
|
||||||
/api/v1/admin/article-tags:
|
/api/v1/admin/article-tags:
|
||||||
post:
|
post:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -2453,7 +2484,7 @@ paths:
|
|||||||
- Bearer: []
|
- Bearer: []
|
||||||
summary: 创建标签
|
summary: 创建标签
|
||||||
tags:
|
tags:
|
||||||
- 文章标签管理
|
- 文章标签-管理端
|
||||||
/api/v1/admin/article-tags/{id}:
|
/api/v1/admin/article-tags/{id}:
|
||||||
delete:
|
delete:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -2497,7 +2528,7 @@ paths:
|
|||||||
- Bearer: []
|
- Bearer: []
|
||||||
summary: 删除标签
|
summary: 删除标签
|
||||||
tags:
|
tags:
|
||||||
- 文章标签管理
|
- 文章标签-管理端
|
||||||
put:
|
put:
|
||||||
consumes:
|
consumes:
|
||||||
- application/json
|
- application/json
|
||||||
@@ -2546,7 +2577,278 @@ paths:
|
|||||||
- Bearer: []
|
- Bearer: []
|
||||||
summary: 更新标签
|
summary: 更新标签
|
||||||
tags:
|
tags:
|
||||||
- 文章标签管理
|
- 文章标签-管理端
|
||||||
|
/api/v1/admin/articles:
|
||||||
|
post:
|
||||||
|
consumes:
|
||||||
|
- application/json
|
||||||
|
description: 创建新的文章
|
||||||
|
parameters:
|
||||||
|
- description: 创建文章请求
|
||||||
|
in: body
|
||||||
|
name: request
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/commands.CreateArticleCommand'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"201":
|
||||||
|
description: 文章创建成功
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"400":
|
||||||
|
description: 请求参数错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"401":
|
||||||
|
description: 未认证
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"500":
|
||||||
|
description: 服务器内部错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- Bearer: []
|
||||||
|
summary: 创建文章
|
||||||
|
tags:
|
||||||
|
- 文章管理-管理端
|
||||||
|
/api/v1/admin/articles/{id}:
|
||||||
|
delete:
|
||||||
|
consumes:
|
||||||
|
- application/json
|
||||||
|
description: 删除指定文章
|
||||||
|
parameters:
|
||||||
|
- description: 文章ID
|
||||||
|
in: path
|
||||||
|
name: id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: 文章删除成功
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"400":
|
||||||
|
description: 请求参数错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"401":
|
||||||
|
description: 未认证
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"404":
|
||||||
|
description: 文章不存在
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"500":
|
||||||
|
description: 服务器内部错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- Bearer: []
|
||||||
|
summary: 删除文章
|
||||||
|
tags:
|
||||||
|
- 文章管理-管理端
|
||||||
|
put:
|
||||||
|
consumes:
|
||||||
|
- application/json
|
||||||
|
description: 更新文章信息
|
||||||
|
parameters:
|
||||||
|
- description: 文章ID
|
||||||
|
in: path
|
||||||
|
name: id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
- description: 更新文章请求
|
||||||
|
in: body
|
||||||
|
name: request
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/commands.UpdateArticleCommand'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: 文章更新成功
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"400":
|
||||||
|
description: 请求参数错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"401":
|
||||||
|
description: 未认证
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"404":
|
||||||
|
description: 文章不存在
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"500":
|
||||||
|
description: 服务器内部错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- Bearer: []
|
||||||
|
summary: 更新文章
|
||||||
|
tags:
|
||||||
|
- 文章管理-管理端
|
||||||
|
/api/v1/admin/articles/{id}/archive:
|
||||||
|
post:
|
||||||
|
consumes:
|
||||||
|
- application/json
|
||||||
|
description: 将已发布文章归档
|
||||||
|
parameters:
|
||||||
|
- description: 文章ID
|
||||||
|
in: path
|
||||||
|
name: id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: 文章归档成功
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"400":
|
||||||
|
description: 请求参数错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"401":
|
||||||
|
description: 未认证
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"404":
|
||||||
|
description: 文章不存在
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"500":
|
||||||
|
description: 服务器内部错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- Bearer: []
|
||||||
|
summary: 归档文章
|
||||||
|
tags:
|
||||||
|
- 文章管理-管理端
|
||||||
|
/api/v1/admin/articles/{id}/featured:
|
||||||
|
put:
|
||||||
|
consumes:
|
||||||
|
- application/json
|
||||||
|
description: 设置文章的推荐状态
|
||||||
|
parameters:
|
||||||
|
- description: 文章ID
|
||||||
|
in: path
|
||||||
|
name: id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
- description: 设置推荐状态请求
|
||||||
|
in: body
|
||||||
|
name: request
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/commands.SetFeaturedCommand'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: 设置推荐状态成功
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"400":
|
||||||
|
description: 请求参数错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"401":
|
||||||
|
description: 未认证
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"404":
|
||||||
|
description: 文章不存在
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"500":
|
||||||
|
description: 服务器内部错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- Bearer: []
|
||||||
|
summary: 设置推荐状态
|
||||||
|
tags:
|
||||||
|
- 文章管理-管理端
|
||||||
|
/api/v1/admin/articles/{id}/publish:
|
||||||
|
post:
|
||||||
|
consumes:
|
||||||
|
- application/json
|
||||||
|
description: 将草稿文章发布
|
||||||
|
parameters:
|
||||||
|
- description: 文章ID
|
||||||
|
in: path
|
||||||
|
name: id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: 文章发布成功
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"400":
|
||||||
|
description: 请求参数错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"401":
|
||||||
|
description: 未认证
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"404":
|
||||||
|
description: 文章不存在
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
"500":
|
||||||
|
description: 服务器内部错误
|
||||||
|
schema:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- Bearer: []
|
||||||
|
summary: 发布文章
|
||||||
|
tags:
|
||||||
|
- 文章管理-管理端
|
||||||
/api/v1/admin/articles/{id}/schedule-publish:
|
/api/v1/admin/articles/{id}/schedule-publish:
|
||||||
post:
|
post:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -2596,7 +2898,7 @@ paths:
|
|||||||
- Bearer: []
|
- Bearer: []
|
||||||
summary: 定时发布文章
|
summary: 定时发布文章
|
||||||
tags:
|
tags:
|
||||||
- 文章管理
|
- 文章管理-管理端
|
||||||
/api/v1/admin/articles/stats:
|
/api/v1/admin/articles/stats:
|
||||||
get:
|
get:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -2623,7 +2925,7 @@ paths:
|
|||||||
- Bearer: []
|
- Bearer: []
|
||||||
summary: 获取文章统计
|
summary: 获取文章统计
|
||||||
tags:
|
tags:
|
||||||
- 文章管理
|
- 文章管理-管理端
|
||||||
/api/v1/admin/invoices/{application_id}/approve:
|
/api/v1/admin/invoices/{application_id}/approve:
|
||||||
post:
|
post:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -4256,7 +4558,7 @@ paths:
|
|||||||
type: object
|
type: object
|
||||||
summary: 获取分类列表
|
summary: 获取分类列表
|
||||||
tags:
|
tags:
|
||||||
- 文章分类
|
- 文章分类-用户端
|
||||||
/api/v1/article-categories/{id}:
|
/api/v1/article-categories/{id}:
|
||||||
get:
|
get:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -4292,7 +4594,7 @@ paths:
|
|||||||
type: object
|
type: object
|
||||||
summary: 获取分类详情
|
summary: 获取分类详情
|
||||||
tags:
|
tags:
|
||||||
- 文章分类
|
- 文章分类-用户端
|
||||||
/api/v1/article-tags:
|
/api/v1/article-tags:
|
||||||
get:
|
get:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -4312,7 +4614,7 @@ paths:
|
|||||||
type: object
|
type: object
|
||||||
summary: 获取标签列表
|
summary: 获取标签列表
|
||||||
tags:
|
tags:
|
||||||
- 文章标签
|
- 文章标签-用户端
|
||||||
/api/v1/article-tags/{id}:
|
/api/v1/article-tags/{id}:
|
||||||
get:
|
get:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -4348,7 +4650,7 @@ paths:
|
|||||||
type: object
|
type: object
|
||||||
summary: 获取标签详情
|
summary: 获取标签详情
|
||||||
tags:
|
tags:
|
||||||
- 文章标签
|
- 文章标签-用户端
|
||||||
/api/v1/articles:
|
/api/v1/articles:
|
||||||
get:
|
get:
|
||||||
consumes:
|
consumes:
|
||||||
@@ -4416,90 +4718,8 @@ paths:
|
|||||||
type: object
|
type: object
|
||||||
summary: 获取文章列表
|
summary: 获取文章列表
|
||||||
tags:
|
tags:
|
||||||
- 文章管理
|
- 文章管理-用户端
|
||||||
post:
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
description: 创建新的文章
|
|
||||||
parameters:
|
|
||||||
- description: 创建文章请求
|
|
||||||
in: body
|
|
||||||
name: request
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
$ref: '#/definitions/commands.CreateArticleCommand'
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
"201":
|
|
||||||
description: 文章创建成功
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"400":
|
|
||||||
description: 请求参数错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"401":
|
|
||||||
description: 未认证
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"500":
|
|
||||||
description: 服务器内部错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
security:
|
|
||||||
- Bearer: []
|
|
||||||
summary: 创建文章
|
|
||||||
tags:
|
|
||||||
- 文章管理
|
|
||||||
/api/v1/articles/{id}:
|
/api/v1/articles/{id}:
|
||||||
delete:
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
description: 删除指定文章
|
|
||||||
parameters:
|
|
||||||
- description: 文章ID
|
|
||||||
in: path
|
|
||||||
name: id
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: 文章删除成功
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"400":
|
|
||||||
description: 请求参数错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"401":
|
|
||||||
description: 未认证
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"404":
|
|
||||||
description: 文章不存在
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"500":
|
|
||||||
description: 服务器内部错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
security:
|
|
||||||
- Bearer: []
|
|
||||||
summary: 删除文章
|
|
||||||
tags:
|
|
||||||
- 文章管理
|
|
||||||
get:
|
get:
|
||||||
consumes:
|
consumes:
|
||||||
- application/json
|
- application/json
|
||||||
@@ -4522,11 +4742,6 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
type: object
|
type: object
|
||||||
"401":
|
|
||||||
description: 未认证
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"404":
|
"404":
|
||||||
description: 文章不存在
|
description: 文章不存在
|
||||||
schema:
|
schema:
|
||||||
@@ -4537,198 +4752,9 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
type: object
|
type: object
|
||||||
security:
|
|
||||||
- Bearer: []
|
|
||||||
summary: 获取文章详情
|
summary: 获取文章详情
|
||||||
tags:
|
tags:
|
||||||
- 文章管理
|
- 文章管理-用户端
|
||||||
put:
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
description: 更新文章信息
|
|
||||||
parameters:
|
|
||||||
- description: 文章ID
|
|
||||||
in: path
|
|
||||||
name: id
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
- description: 更新文章请求
|
|
||||||
in: body
|
|
||||||
name: request
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
$ref: '#/definitions/commands.UpdateArticleCommand'
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: 文章更新成功
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"400":
|
|
||||||
description: 请求参数错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"401":
|
|
||||||
description: 未认证
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"404":
|
|
||||||
description: 文章不存在
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"500":
|
|
||||||
description: 服务器内部错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
security:
|
|
||||||
- Bearer: []
|
|
||||||
summary: 更新文章
|
|
||||||
tags:
|
|
||||||
- 文章管理
|
|
||||||
/api/v1/articles/{id}/archive:
|
|
||||||
post:
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
description: 将已发布文章归档
|
|
||||||
parameters:
|
|
||||||
- description: 文章ID
|
|
||||||
in: path
|
|
||||||
name: id
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: 文章归档成功
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"400":
|
|
||||||
description: 请求参数错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"401":
|
|
||||||
description: 未认证
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"404":
|
|
||||||
description: 文章不存在
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"500":
|
|
||||||
description: 服务器内部错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
security:
|
|
||||||
- Bearer: []
|
|
||||||
summary: 归档文章
|
|
||||||
tags:
|
|
||||||
- 文章管理
|
|
||||||
/api/v1/articles/{id}/featured:
|
|
||||||
put:
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
description: 设置文章的推荐状态
|
|
||||||
parameters:
|
|
||||||
- description: 文章ID
|
|
||||||
in: path
|
|
||||||
name: id
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
- description: 设置推荐状态请求
|
|
||||||
in: body
|
|
||||||
name: request
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
$ref: '#/definitions/commands.SetFeaturedCommand'
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: 设置推荐状态成功
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"400":
|
|
||||||
description: 请求参数错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"401":
|
|
||||||
description: 未认证
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"404":
|
|
||||||
description: 文章不存在
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"500":
|
|
||||||
description: 服务器内部错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
security:
|
|
||||||
- Bearer: []
|
|
||||||
summary: 设置推荐状态
|
|
||||||
tags:
|
|
||||||
- 文章管理
|
|
||||||
/api/v1/articles/{id}/publish:
|
|
||||||
post:
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
description: 将草稿文章发布
|
|
||||||
parameters:
|
|
||||||
- description: 文章ID
|
|
||||||
in: path
|
|
||||||
name: id
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: 文章发布成功
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"400":
|
|
||||||
description: 请求参数错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"401":
|
|
||||||
description: 未认证
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"404":
|
|
||||||
description: 文章不存在
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
"500":
|
|
||||||
description: 服务器内部错误
|
|
||||||
schema:
|
|
||||||
additionalProperties: true
|
|
||||||
type: object
|
|
||||||
security:
|
|
||||||
- Bearer: []
|
|
||||||
summary: 发布文章
|
|
||||||
tags:
|
|
||||||
- 文章管理
|
|
||||||
/api/v1/categories:
|
/api/v1/categories:
|
||||||
get:
|
get:
|
||||||
consumes:
|
consumes:
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ func (s *ArticleApplicationServiceImpl) ListArticles(ctx context.Context, query
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 3. 转换为响应对象
|
// 3. 转换为响应对象
|
||||||
items := responses.FromArticleEntities(articles)
|
items := responses.FromArticleEntitiesToListItemList(articles)
|
||||||
|
|
||||||
response := &responses.ArticleListResponse{
|
response := &responses.ArticleListResponse{
|
||||||
Total: total,
|
Total: total,
|
||||||
|
|||||||
@@ -23,12 +23,29 @@ type ArticleInfoResponse struct {
|
|||||||
UpdatedAt time.Time `json:"updated_at" comment:"更新时间"`
|
UpdatedAt time.Time `json:"updated_at" comment:"更新时间"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ArticleListItemResponse 文章列表项响应(不包含content)
|
||||||
|
type ArticleListItemResponse struct {
|
||||||
|
ID string `json:"id" comment:"文章ID"`
|
||||||
|
Title string `json:"title" comment:"文章标题"`
|
||||||
|
Summary string `json:"summary" comment:"文章摘要"`
|
||||||
|
CoverImage string `json:"cover_image" comment:"封面图片"`
|
||||||
|
CategoryID string `json:"category_id" comment:"分类ID"`
|
||||||
|
Category *CategoryInfoResponse `json:"category,omitempty" comment:"分类信息"`
|
||||||
|
Status string `json:"status" comment:"文章状态"`
|
||||||
|
IsFeatured bool `json:"is_featured" comment:"是否推荐"`
|
||||||
|
PublishedAt *time.Time `json:"published_at" comment:"发布时间"`
|
||||||
|
ViewCount int `json:"view_count" comment:"阅读量"`
|
||||||
|
Tags []TagInfoResponse `json:"tags" comment:"标签列表"`
|
||||||
|
CreatedAt time.Time `json:"created_at" comment:"创建时间"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at" comment:"更新时间"`
|
||||||
|
}
|
||||||
|
|
||||||
// ArticleListResponse 文章列表响应
|
// ArticleListResponse 文章列表响应
|
||||||
type ArticleListResponse struct {
|
type ArticleListResponse struct {
|
||||||
Total int64 `json:"total" comment:"总数"`
|
Total int64 `json:"total" comment:"总数"`
|
||||||
Page int `json:"page" comment:"页码"`
|
Page int `json:"page" comment:"页码"`
|
||||||
Size int `json:"size" comment:"每页数量"`
|
Size int `json:"size" comment:"每页数量"`
|
||||||
Items []ArticleInfoResponse `json:"items" comment:"文章列表"`
|
Items []ArticleListItemResponse `json:"items" comment:"文章列表"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CategoryInfoResponse 分类信息响应
|
// CategoryInfoResponse 分类信息响应
|
||||||
@@ -118,6 +135,53 @@ func FromArticleEntity(article *entities.Article) *ArticleInfoResponse {
|
|||||||
return response
|
return response
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FromArticleEntityToListItem 从文章实体转换为列表项响应对象(不包含content)
|
||||||
|
func FromArticleEntityToListItem(article *entities.Article) *ArticleListItemResponse {
|
||||||
|
if article == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
response := &ArticleListItemResponse{
|
||||||
|
ID: article.ID,
|
||||||
|
Title: article.Title,
|
||||||
|
Summary: article.Summary,
|
||||||
|
CoverImage: article.CoverImage,
|
||||||
|
CategoryID: article.CategoryID,
|
||||||
|
Status: string(article.Status),
|
||||||
|
IsFeatured: article.IsFeatured,
|
||||||
|
PublishedAt: article.PublishedAt,
|
||||||
|
ViewCount: article.ViewCount,
|
||||||
|
CreatedAt: article.CreatedAt,
|
||||||
|
UpdatedAt: article.UpdatedAt,
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换分类信息
|
||||||
|
if article.Category != nil {
|
||||||
|
response.Category = &CategoryInfoResponse{
|
||||||
|
ID: article.Category.ID,
|
||||||
|
Name: article.Category.Name,
|
||||||
|
Description: article.Category.Description,
|
||||||
|
SortOrder: article.Category.SortOrder,
|
||||||
|
CreatedAt: article.Category.CreatedAt,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换标签信息
|
||||||
|
if len(article.Tags) > 0 {
|
||||||
|
response.Tags = make([]TagInfoResponse, len(article.Tags))
|
||||||
|
for i, tag := range article.Tags {
|
||||||
|
response.Tags[i] = TagInfoResponse{
|
||||||
|
ID: tag.ID,
|
||||||
|
Name: tag.Name,
|
||||||
|
Color: tag.Color,
|
||||||
|
CreatedAt: tag.CreatedAt,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return response
|
||||||
|
}
|
||||||
|
|
||||||
// FromArticleEntities 从文章实体列表转换为响应对象列表
|
// FromArticleEntities 从文章实体列表转换为响应对象列表
|
||||||
func FromArticleEntities(articles []*entities.Article) []ArticleInfoResponse {
|
func FromArticleEntities(articles []*entities.Article) []ArticleInfoResponse {
|
||||||
if len(articles) == 0 {
|
if len(articles) == 0 {
|
||||||
@@ -133,3 +197,19 @@ func FromArticleEntities(articles []*entities.Article) []ArticleInfoResponse {
|
|||||||
|
|
||||||
return responses
|
return responses
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FromArticleEntitiesToListItemList 从文章实体列表转换为列表项响应对象列表(不包含content)
|
||||||
|
func FromArticleEntitiesToListItemList(articles []*entities.Article) []ArticleListItemResponse {
|
||||||
|
if len(articles) == 0 {
|
||||||
|
return []ArticleListItemResponse{}
|
||||||
|
}
|
||||||
|
|
||||||
|
responses := make([]ArticleListItemResponse, len(articles))
|
||||||
|
for i, article := range articles {
|
||||||
|
if response := FromArticleEntityToListItem(article); response != nil {
|
||||||
|
responses[i] = *response
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return responses
|
||||||
|
}
|
||||||
|
|||||||
@@ -261,7 +261,8 @@ func (r *GormArticleRepository) ListArticles(ctx context.Context, query *repoQue
|
|||||||
var articles []entities.Article
|
var articles []entities.Article
|
||||||
var total int64
|
var total int64
|
||||||
|
|
||||||
dbQuery := r.db.WithContext(ctx).Model(&entities.Article{})
|
dbQuery := r.db.WithContext(ctx).Model(&entities.Article{}).
|
||||||
|
Select("id, title, summary, cover_image, category_id, status, is_featured, published_at, view_count, created_at, updated_at, scheduled_at")
|
||||||
|
|
||||||
// 应用筛选条件
|
// 应用筛选条件
|
||||||
if query.Status != "" {
|
if query.Status != "" {
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ func NewArticleHandler(
|
|||||||
// CreateArticle 创建文章
|
// CreateArticle 创建文章
|
||||||
// @Summary 创建文章
|
// @Summary 创建文章
|
||||||
// @Description 创建新的文章
|
// @Description 创建新的文章
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -47,7 +47,7 @@ func NewArticleHandler(
|
|||||||
// @Failure 400 {object} map[string]interface{} "请求参数错误"
|
// @Failure 400 {object} map[string]interface{} "请求参数错误"
|
||||||
// @Failure 401 {object} map[string]interface{} "未认证"
|
// @Failure 401 {object} map[string]interface{} "未认证"
|
||||||
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
||||||
// @Router /api/v1/articles [post]
|
// @Router /api/v1/admin/articles [post]
|
||||||
func (h *ArticleHandler) CreateArticle(c *gin.Context) {
|
func (h *ArticleHandler) CreateArticle(c *gin.Context) {
|
||||||
var cmd commands.CreateArticleCommand
|
var cmd commands.CreateArticleCommand
|
||||||
if err := h.validator.BindAndValidate(c, &cmd); err != nil {
|
if err := h.validator.BindAndValidate(c, &cmd); err != nil {
|
||||||
@@ -72,14 +72,12 @@ func (h *ArticleHandler) CreateArticle(c *gin.Context) {
|
|||||||
// GetArticleByID 获取文章详情
|
// GetArticleByID 获取文章详情
|
||||||
// @Summary 获取文章详情
|
// @Summary 获取文章详情
|
||||||
// @Description 根据ID获取文章详情
|
// @Description 根据ID获取文章详情
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-用户端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
|
||||||
// @Param id path string true "文章ID"
|
// @Param id path string true "文章ID"
|
||||||
// @Success 200 {object} responses.ArticleInfoResponse "获取文章详情成功"
|
// @Success 200 {object} responses.ArticleInfoResponse "获取文章详情成功"
|
||||||
// @Failure 400 {object} map[string]interface{} "请求参数错误"
|
// @Failure 400 {object} map[string]interface{} "请求参数错误"
|
||||||
// @Failure 401 {object} map[string]interface{} "未认证"
|
|
||||||
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
||||||
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
||||||
// @Router /api/v1/articles/{id} [get]
|
// @Router /api/v1/articles/{id} [get]
|
||||||
@@ -104,7 +102,7 @@ func (h *ArticleHandler) GetArticleByID(c *gin.Context) {
|
|||||||
// ListArticles 获取文章列表
|
// ListArticles 获取文章列表
|
||||||
// @Summary 获取文章列表
|
// @Summary 获取文章列表
|
||||||
// @Description 分页获取文章列表,支持多种筛选条件
|
// @Description 分页获取文章列表,支持多种筛选条件
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-用户端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Param page query int false "页码" default(1)
|
// @Param page query int false "页码" default(1)
|
||||||
@@ -153,7 +151,7 @@ func (h *ArticleHandler) ListArticles(c *gin.Context) {
|
|||||||
// UpdateArticle 更新文章
|
// UpdateArticle 更新文章
|
||||||
// @Summary 更新文章
|
// @Summary 更新文章
|
||||||
// @Description 更新文章信息
|
// @Description 更新文章信息
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -164,7 +162,7 @@ func (h *ArticleHandler) ListArticles(c *gin.Context) {
|
|||||||
// @Failure 401 {object} map[string]interface{} "未认证"
|
// @Failure 401 {object} map[string]interface{} "未认证"
|
||||||
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
||||||
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
||||||
// @Router /api/v1/articles/{id} [put]
|
// @Router /api/v1/admin/articles/{id} [put]
|
||||||
func (h *ArticleHandler) UpdateArticle(c *gin.Context) {
|
func (h *ArticleHandler) UpdateArticle(c *gin.Context) {
|
||||||
var cmd commands.UpdateArticleCommand
|
var cmd commands.UpdateArticleCommand
|
||||||
cmd.ID = c.Param("id")
|
cmd.ID = c.Param("id")
|
||||||
@@ -188,7 +186,7 @@ func (h *ArticleHandler) UpdateArticle(c *gin.Context) {
|
|||||||
// DeleteArticle 删除文章
|
// DeleteArticle 删除文章
|
||||||
// @Summary 删除文章
|
// @Summary 删除文章
|
||||||
// @Description 删除指定文章
|
// @Description 删除指定文章
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -198,7 +196,7 @@ func (h *ArticleHandler) UpdateArticle(c *gin.Context) {
|
|||||||
// @Failure 401 {object} map[string]interface{} "未认证"
|
// @Failure 401 {object} map[string]interface{} "未认证"
|
||||||
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
||||||
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
||||||
// @Router /api/v1/articles/{id} [delete]
|
// @Router /api/v1/admin/articles/{id} [delete]
|
||||||
func (h *ArticleHandler) DeleteArticle(c *gin.Context) {
|
func (h *ArticleHandler) DeleteArticle(c *gin.Context) {
|
||||||
var cmd commands.DeleteArticleCommand
|
var cmd commands.DeleteArticleCommand
|
||||||
if err := h.validator.ValidateParam(c, &cmd); err != nil {
|
if err := h.validator.ValidateParam(c, &cmd); err != nil {
|
||||||
@@ -217,7 +215,7 @@ func (h *ArticleHandler) DeleteArticle(c *gin.Context) {
|
|||||||
// PublishArticle 发布文章
|
// PublishArticle 发布文章
|
||||||
// @Summary 发布文章
|
// @Summary 发布文章
|
||||||
// @Description 将草稿文章发布
|
// @Description 将草稿文章发布
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -227,7 +225,7 @@ func (h *ArticleHandler) DeleteArticle(c *gin.Context) {
|
|||||||
// @Failure 401 {object} map[string]interface{} "未认证"
|
// @Failure 401 {object} map[string]interface{} "未认证"
|
||||||
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
||||||
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
||||||
// @Router /api/v1/articles/{id}/publish [post]
|
// @Router /api/v1/admin/articles/{id}/publish [post]
|
||||||
func (h *ArticleHandler) PublishArticle(c *gin.Context) {
|
func (h *ArticleHandler) PublishArticle(c *gin.Context) {
|
||||||
var cmd commands.PublishArticleCommand
|
var cmd commands.PublishArticleCommand
|
||||||
if err := h.validator.ValidateParam(c, &cmd); err != nil {
|
if err := h.validator.ValidateParam(c, &cmd); err != nil {
|
||||||
@@ -246,7 +244,7 @@ func (h *ArticleHandler) PublishArticle(c *gin.Context) {
|
|||||||
// SchedulePublishArticle 定时发布文章
|
// SchedulePublishArticle 定时发布文章
|
||||||
// @Summary 定时发布文章
|
// @Summary 定时发布文章
|
||||||
// @Description 设置文章的定时发布时间
|
// @Description 设置文章的定时发布时间
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -279,7 +277,7 @@ func (h *ArticleHandler) SchedulePublishArticle(c *gin.Context) {
|
|||||||
// ArchiveArticle 归档文章
|
// ArchiveArticle 归档文章
|
||||||
// @Summary 归档文章
|
// @Summary 归档文章
|
||||||
// @Description 将已发布文章归档
|
// @Description 将已发布文章归档
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -289,7 +287,7 @@ func (h *ArticleHandler) SchedulePublishArticle(c *gin.Context) {
|
|||||||
// @Failure 401 {object} map[string]interface{} "未认证"
|
// @Failure 401 {object} map[string]interface{} "未认证"
|
||||||
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
||||||
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
||||||
// @Router /api/v1/articles/{id}/archive [post]
|
// @Router /api/v1/admin/articles/{id}/archive [post]
|
||||||
func (h *ArticleHandler) ArchiveArticle(c *gin.Context) {
|
func (h *ArticleHandler) ArchiveArticle(c *gin.Context) {
|
||||||
var cmd commands.ArchiveArticleCommand
|
var cmd commands.ArchiveArticleCommand
|
||||||
if err := h.validator.ValidateParam(c, &cmd); err != nil {
|
if err := h.validator.ValidateParam(c, &cmd); err != nil {
|
||||||
@@ -308,7 +306,7 @@ func (h *ArticleHandler) ArchiveArticle(c *gin.Context) {
|
|||||||
// SetFeatured 设置推荐状态
|
// SetFeatured 设置推荐状态
|
||||||
// @Summary 设置推荐状态
|
// @Summary 设置推荐状态
|
||||||
// @Description 设置文章的推荐状态
|
// @Description 设置文章的推荐状态
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -319,7 +317,7 @@ func (h *ArticleHandler) ArchiveArticle(c *gin.Context) {
|
|||||||
// @Failure 401 {object} map[string]interface{} "未认证"
|
// @Failure 401 {object} map[string]interface{} "未认证"
|
||||||
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
// @Failure 404 {object} map[string]interface{} "文章不存在"
|
||||||
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
// @Failure 500 {object} map[string]interface{} "服务器内部错误"
|
||||||
// @Router /api/v1/articles/{id}/featured [put]
|
// @Router /api/v1/admin/articles/{id}/featured [put]
|
||||||
func (h *ArticleHandler) SetFeatured(c *gin.Context) {
|
func (h *ArticleHandler) SetFeatured(c *gin.Context) {
|
||||||
var cmd commands.SetFeaturedCommand
|
var cmd commands.SetFeaturedCommand
|
||||||
if err := h.validator.ValidateParam(c, &cmd); err != nil {
|
if err := h.validator.ValidateParam(c, &cmd); err != nil {
|
||||||
@@ -341,7 +339,7 @@ func (h *ArticleHandler) SetFeatured(c *gin.Context) {
|
|||||||
// GetArticleStats 获取文章统计
|
// GetArticleStats 获取文章统计
|
||||||
// @Summary 获取文章统计
|
// @Summary 获取文章统计
|
||||||
// @Description 获取文章相关统计数据
|
// @Description 获取文章相关统计数据
|
||||||
// @Tags 文章管理
|
// @Tags 文章管理-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -366,7 +364,7 @@ func (h *ArticleHandler) GetArticleStats(c *gin.Context) {
|
|||||||
// ListCategories 获取分类列表
|
// ListCategories 获取分类列表
|
||||||
// @Summary 获取分类列表
|
// @Summary 获取分类列表
|
||||||
// @Description 获取所有文章分类
|
// @Description 获取所有文章分类
|
||||||
// @Tags 文章分类
|
// @Tags 文章分类-用户端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Success 200 {object} responses.CategoryListResponse "获取分类列表成功"
|
// @Success 200 {object} responses.CategoryListResponse "获取分类列表成功"
|
||||||
@@ -386,7 +384,7 @@ func (h *ArticleHandler) ListCategories(c *gin.Context) {
|
|||||||
// GetCategoryByID 获取分类详情
|
// GetCategoryByID 获取分类详情
|
||||||
// @Summary 获取分类详情
|
// @Summary 获取分类详情
|
||||||
// @Description 根据ID获取分类详情
|
// @Description 根据ID获取分类详情
|
||||||
// @Tags 文章分类
|
// @Tags 文章分类-用户端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Param id path string true "分类ID"
|
// @Param id path string true "分类ID"
|
||||||
@@ -416,7 +414,7 @@ func (h *ArticleHandler) GetCategoryByID(c *gin.Context) {
|
|||||||
// CreateCategory 创建分类
|
// CreateCategory 创建分类
|
||||||
// @Summary 创建分类
|
// @Summary 创建分类
|
||||||
// @Description 创建新的文章分类
|
// @Description 创建新的文章分类
|
||||||
// @Tags 文章分类管理
|
// @Tags 文章分类-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -444,7 +442,7 @@ func (h *ArticleHandler) CreateCategory(c *gin.Context) {
|
|||||||
// UpdateCategory 更新分类
|
// UpdateCategory 更新分类
|
||||||
// @Summary 更新分类
|
// @Summary 更新分类
|
||||||
// @Description 更新分类信息
|
// @Description 更新分类信息
|
||||||
// @Tags 文章分类管理
|
// @Tags 文章分类-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -479,7 +477,7 @@ func (h *ArticleHandler) UpdateCategory(c *gin.Context) {
|
|||||||
// DeleteCategory 删除分类
|
// DeleteCategory 删除分类
|
||||||
// @Summary 删除分类
|
// @Summary 删除分类
|
||||||
// @Description 删除指定分类
|
// @Description 删除指定分类
|
||||||
// @Tags 文章分类管理
|
// @Tags 文章分类-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -510,7 +508,7 @@ func (h *ArticleHandler) DeleteCategory(c *gin.Context) {
|
|||||||
// ListTags 获取标签列表
|
// ListTags 获取标签列表
|
||||||
// @Summary 获取标签列表
|
// @Summary 获取标签列表
|
||||||
// @Description 获取所有文章标签
|
// @Description 获取所有文章标签
|
||||||
// @Tags 文章标签
|
// @Tags 文章标签-用户端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Success 200 {object} responses.TagListResponse "获取标签列表成功"
|
// @Success 200 {object} responses.TagListResponse "获取标签列表成功"
|
||||||
@@ -530,7 +528,7 @@ func (h *ArticleHandler) ListTags(c *gin.Context) {
|
|||||||
// GetTagByID 获取标签详情
|
// GetTagByID 获取标签详情
|
||||||
// @Summary 获取标签详情
|
// @Summary 获取标签详情
|
||||||
// @Description 根据ID获取标签详情
|
// @Description 根据ID获取标签详情
|
||||||
// @Tags 文章标签
|
// @Tags 文章标签-用户端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Param id path string true "标签ID"
|
// @Param id path string true "标签ID"
|
||||||
@@ -560,7 +558,7 @@ func (h *ArticleHandler) GetTagByID(c *gin.Context) {
|
|||||||
// CreateTag 创建标签
|
// CreateTag 创建标签
|
||||||
// @Summary 创建标签
|
// @Summary 创建标签
|
||||||
// @Description 创建新的文章标签
|
// @Description 创建新的文章标签
|
||||||
// @Tags 文章标签管理
|
// @Tags 文章标签-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -588,7 +586,7 @@ func (h *ArticleHandler) CreateTag(c *gin.Context) {
|
|||||||
// UpdateTag 更新标签
|
// UpdateTag 更新标签
|
||||||
// @Summary 更新标签
|
// @Summary 更新标签
|
||||||
// @Description 更新标签信息
|
// @Description 更新标签信息
|
||||||
// @Tags 文章标签管理
|
// @Tags 文章标签-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
@@ -623,7 +621,7 @@ func (h *ArticleHandler) UpdateTag(c *gin.Context) {
|
|||||||
// DeleteTag 删除标签
|
// DeleteTag 删除标签
|
||||||
// @Summary 删除标签
|
// @Summary 删除标签
|
||||||
// @Description 删除指定标签
|
// @Description 删除指定标签
|
||||||
// @Tags 文章标签管理
|
// @Tags 文章标签-管理端
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
|
|||||||
Reference in New Issue
Block a user