# 简介

从PerfreeBlog 1.2.1版本开始,为方便主题的开发,对API接口进行了支持,在项目中可访问/doc.html查看swagger接口文档

# 文章相关

# 1. 根据文章ID获取文章数据

请求地址: /api/article/getArticleById
请求方式: get
请求参数示例:

/api/article/getArticleById?articleId=1
1

响应参数示例:

{
  "code": 200, // 状态码:200成功,500失败
  "msg": "success", // 信息
  "data": {  // 数据
    "id": 1, // 文章ID
    "title": "HelloWorld", // 标题
    "content": "欢迎使用 Perfree,如果您看到这篇文章,表示Perfree 已经安装成功 dsa", // 内容
    "summary": "", // 文章摘要
    "categoryId": null, // 分类id
    "metaKeywords": "", // SEO关键字
    "metaDescription": "", // SEO描述
    "thumbnail": "", // 缩略图
    "isTop": 0, // 是否置顶
    "status": 0, // 状态:0 发布  1草稿
    "commentCount": 17, // 评论数
    "viewCount": 25, // 浏览数
    "userId": 1, // 发表人id
    "isComment": 1, // 是否允许评论,0:否,1:是
    "createTime": "2021-08-10T00:15:00.000+00:00", // 创建时间
    "updateTime": "2021-08-11T01:34:17.000+00:00", // 更新时间
    "type": "article",// 类型 article文章,page页面
    "tags": [], // 所属标签信息
    "user": { // 发表人信息
      "id": 1, // id
      "account": null, // 账户
      "userName": "perfree", // 昵称
      "password": null,
      "salt": null,
      "status": null,
      "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
      "roleId": null,
      "createTime": null,
      "updateTime": null,
      "captcha": null,
      "website": null, // 网站地址
      "role": null,
      "email": "perfree@126.com" //邮箱
    },
    "category": null, // 分类信息
    "articleTags": null,
    "url": "/article/1" // 文章url
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

# 2. 文章分页数据

请求地址: /api/article/list
请求方式: post
请求参数示例:

{
	"form": { //查询参数
		"title": "" // 文章标题
	},
	"pageIndex": 1, // 当前页码
	"pageSize": 30 // 每页多少条
}
1
2
3
4
5
6
7

响应参数示例:

{
  "pageIndex": 1, // 当前页码
  "pageSize": 30, // 每页数据量
  "total": 1, // 总数据量
  "data": [ // 数据数组
    {
        "id": 1, // 文章ID
        "title": "HelloWorld", // 标题
        "content": "欢迎使用 Perfree,如果您看到这篇文章,表示Perfree 已经安装成功 dsa", // 内容
        "summary": "", // 文章摘要
        "categoryId": null, // 分类id
        "metaKeywords": "", // SEO关键字
        "metaDescription": "", // SEO描述
        "thumbnail": "", // 缩略图
        "isTop": 0, // 是否置顶
        "status": 0, // 状态:0 发布  1草稿
        "commentCount": 17, // 评论数
        "viewCount": 25, // 浏览数
        "userId": 1, // 发表人id
        "isComment": 1, // 是否允许评论,0:否,1:是
        "createTime": "2021-08-10T00:15:00.000+00:00", // 创建时间
        "updateTime": "2021-08-11T01:34:17.000+00:00", // 更新时间
        "type": "article",// 类型 article文章,page页面
        "tags": [], // 所属标签信息
        "user": { // 发表人信息
        "id": 1, // id
        "account": null, // 账户
        "userName": "perfree", // 昵称
        "password": null,
        "salt": null,
        "status": null,
        "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
        "roleId": null,
        "createTime": null,
        "updateTime": null,
        "captcha": null,
        "website": null, // 网站地址
        "role": null,
        "email": "perfree@126.com" //邮箱
        },
        "category": null, // 分类信息
        "articleTags": null,
        "url": "/article/1" // 文章url
    }
  ],
  "code": 200, // 状态码
  "msg": null // 信息
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

# 3. 最热文章分页数据(阅读量排序)

请求地址: /api/article/getHotListByView
请求方式: post
请求参数示例:

{
	"pageIndex": 1, // 当前页码
	"pageSize": 30 // 每页多少条
}
1
2
3
4

响应参数示例:

{
  "pageIndex": 1, // 当前页码
  "pageSize": 30, // 每页数据量
  "total": 1, // 总数据量
  "data": [ // 数据数组
    {
        "id": 1, // 文章ID
        "title": "HelloWorld", // 标题
        "content": "欢迎使用 Perfree,如果您看到这篇文章,表示Perfree 已经安装成功 dsa", // 内容
        "summary": "", // 文章摘要
        "categoryId": null, // 分类id
        "metaKeywords": "", // SEO关键字
        "metaDescription": "", // SEO描述
        "thumbnail": "", // 缩略图
        "isTop": 0, // 是否置顶
        "status": 0, // 状态:0 发布  1草稿
        "commentCount": 17, // 评论数
        "viewCount": 25, // 浏览数
        "userId": 1, // 发表人id
        "isComment": 1, // 是否允许评论,0:否,1:是
        "createTime": "2021-08-10T00:15:00.000+00:00", // 创建时间
        "updateTime": "2021-08-11T01:34:17.000+00:00", // 更新时间
        "type": "article",// 类型 article文章,page页面
        "tags": [], // 所属标签信息
        "user": { // 发表人信息
        "id": 1, // id
        "account": null, // 账户
        "userName": "perfree", // 昵称
        "password": null,
        "salt": null,
        "status": null,
        "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
        "roleId": null,
        "createTime": null,
        "updateTime": null,
        "captcha": null,
        "website": null, // 网站地址
        "role": null,
        "email": "perfree@126.com" //邮箱
        },
        "category": null, // 分类信息
        "articleTags": null,
        "url": "/article/1" // 文章url
    }
  ],
  "code": 200, // 状态码
  "msg": null // 信息
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

# 4. 最热文章分页数据(评论排序)

请求地址: /api/article/getHotListByComment
请求方式: post
请求参数示例:

{
	"pageIndex": 1, // 当前页码
	"pageSize": 30 // 每页多少条
}
1
2
3
4

响应参数示例:

{
  "pageIndex": 1, // 当前页码
  "pageSize": 30, // 每页数据量
  "total": 1, // 总数据量
  "data": [ // 数据数组
    {
        "id": 1, // 文章ID
        "title": "HelloWorld", // 标题
        "content": "欢迎使用 Perfree,如果您看到这篇文章,表示Perfree 已经安装成功 dsa", // 内容
        "summary": "", // 文章摘要
        "categoryId": null, // 分类id
        "metaKeywords": "", // SEO关键字
        "metaDescription": "", // SEO描述
        "thumbnail": "", // 缩略图
        "isTop": 0, // 是否置顶
        "status": 0, // 状态:0 发布  1草稿
        "commentCount": 17, // 评论数
        "viewCount": 25, // 浏览数
        "userId": 1, // 发表人id
        "isComment": 1, // 是否允许评论,0:否,1:是
        "createTime": "2021-08-10T00:15:00.000+00:00", // 创建时间
        "updateTime": "2021-08-11T01:34:17.000+00:00", // 更新时间
        "type": "article",// 类型 article文章,page页面
        "tags": [], // 所属标签信息
        "user": { // 发表人信息
        "id": 1, // id
        "account": null, // 账户
        "userName": "perfree", // 昵称
        "password": null,
        "salt": null,
        "status": null,
        "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
        "roleId": null,
        "createTime": null,
        "updateTime": null,
        "captcha": null,
        "website": null, // 网站地址
        "role": null,
        "email": "perfree@126.com" //邮箱
        },
        "category": null, // 分类信息
        "articleTags": null,
        "url": "/article/1" // 文章url
    }
  ],
  "code": 200, // 状态码
  "msg": null // 信息
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

# 5. 根据文章ID获取下一篇文章

请求地址: /api/article/getNextArticle
请求方式: get
请求参数示例:

/api/article/getNextArticle?articleId=1
1

响应参数示例:

{
  "code": 200, // 状态码:200成功,500失败
  "msg": "success", // 信息
  "data": {  // 数据
    "id": 1, // 文章ID
    "title": "HelloWorld", // 标题
    "content": "欢迎使用 Perfree,如果您看到这篇文章,表示Perfree 已经安装成功 dsa", // 内容
    "summary": "", // 文章摘要
    "categoryId": null, // 分类id
    "metaKeywords": "", // SEO关键字
    "metaDescription": "", // SEO描述
    "thumbnail": "", // 缩略图
    "isTop": 0, // 是否置顶
    "status": 0, // 状态:0 发布  1草稿
    "commentCount": 17, // 评论数
    "viewCount": 25, // 浏览数
    "userId": 1, // 发表人id
    "isComment": 1, // 是否允许评论,0:否,1:是
    "createTime": "2021-08-10T00:15:00.000+00:00", // 创建时间
    "updateTime": "2021-08-11T01:34:17.000+00:00", // 更新时间
    "type": "article",// 类型 article文章,page页面
    "tags": [], // 所属标签信息
    "user": { // 发表人信息
      "id": 1, // id
      "account": null, // 账户
      "userName": "perfree", // 昵称
      "password": null,
      "salt": null,
      "status": null,
      "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
      "roleId": null,
      "createTime": null,
      "updateTime": null,
      "captcha": null,
      "website": null, // 网站地址
      "role": null,
      "email": "perfree@126.com" //邮箱
    },
    "category": null, // 分类信息
    "articleTags": null,
    "url": "/article/1" // 文章url
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

# 6. 根据文章ID获取上一篇文章

请求地址: /api/article/getPreArticle
请求方式: get
请求参数示例:

/api/article/getPreArticle?articleId=1
1

响应参数示例:

{
  "code": 200, // 状态码:200成功,500失败
  "msg": "success", // 信息
  "data": {  // 数据
    "id": 1, // 文章ID
    "title": "HelloWorld", // 标题
    "content": "欢迎使用 Perfree,如果您看到这篇文章,表示Perfree 已经安装成功 dsa", // 内容
    "summary": "", // 文章摘要
    "categoryId": null, // 分类id
    "metaKeywords": "", // SEO关键字
    "metaDescription": "", // SEO描述
    "thumbnail": "", // 缩略图
    "isTop": 0, // 是否置顶
    "status": 0, // 状态:0 发布  1草稿
    "commentCount": 17, // 评论数
    "viewCount": 25, // 浏览数
    "userId": 1, // 发表人id
    "isComment": 1, // 是否允许评论,0:否,1:是
    "createTime": "2021-08-10T00:15:00.000+00:00", // 创建时间
    "updateTime": "2021-08-11T01:34:17.000+00:00", // 更新时间
    "type": "article",// 类型 article文章,page页面
    "tags": [], // 所属标签信息
    "user": { // 发表人信息
      "id": 1, // id
      "account": null, // 账户
      "userName": "perfree", // 昵称
      "password": null,
      "salt": null,
      "status": null,
      "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
      "roleId": null,
      "createTime": null,
      "updateTime": null,
      "captcha": null,
      "website": null, // 网站地址
      "role": null,
      "email": "perfree@126.com" //邮箱
    },
    "category": null, // 分类信息
    "articleTags": null,
    "url": "/article/1" // 文章url
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

# 7. 获取文章归档分页数据

请求地址: /api/article/getArchive
请求方式: post
请求参数示例:

{
	"pageIndex": 1, // 当前页码
	"pageSize": 30 // 每页多少条
}
1
2
3
4

响应参数示例:

{
  "pageIndex": 1, // 当前页码
  "pageSize": 30, // 每页多少条
  "total": 1, // 数据总数
  "data": [ // 数据数组
    {
      "date": "2021年08月", // 日期
      "articles": [ // 该月份内文章数据
        {
            "id": 1, // 文章ID
            "title": "HelloWorld", // 标题
            "content": "欢迎使用 Perfree,如果您看到这篇文章,表示Perfree 已经安装成功 dsa", // 内容
            "summary": "", // 文章摘要
            "categoryId": null, // 分类id
            "metaKeywords": "", // SEO关键字
            "metaDescription": "", // SEO描述
            "thumbnail": "", // 缩略图
            "isTop": 0, // 是否置顶
            "status": 0, // 状态:0 发布  1草稿
            "commentCount": 17, // 评论数
            "viewCount": 25, // 浏览数
            "userId": 1, // 发表人id
            "isComment": 1, // 是否允许评论,0:否,1:是
            "createTime": "2021-08-10T00:15:00.000+00:00", // 创建时间
            "updateTime": "2021-08-11T01:34:17.000+00:00", // 更新时间
            "type": "article",// 类型 article文章,page页面
            "tags": [], // 所属标签信息
            "user": { // 发表人信息
            "id": 1, // id
            "account": null, // 账户
            "userName": "perfree", // 昵称
            "password": null,
            "salt": null,
            "status": null,
            "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
            "roleId": null,
            "createTime": null,
            "updateTime": null,
            "captcha": null,
            "website": null, // 网站地址
            "role": null,
            "email": "perfree@126.com" //邮箱
            },
            "category": null, // 分类信息
            "articleTags": null,
            "url": "/article/1" // 文章url
        }
      ]
    }
  ],
  "code": 200,
  "msg": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

# 分类相关

# 1. 根据分类ID获取分类信息

请求地址: /api/category/getById
请求方式: get
请求参数示例:

/api/category/getById?categoryId=1
1

响应参数示例:

{
  "code": 200, // 状态码
  "msg": "success", // 信息
  "data": { // 数据
    "id": 1, // 分类ID
    "pid": -1, // 父级ID
    "name": "测试分类", // 分类名
    "desc": "",// 描述
    "count": 0, // 文章数量
    "metaKeywords": "", // SEO关键字
    "metaDescription": "", // SEO描述
    "status": 0, // 状态0:正常,1禁用
    "createTime": "2021-08-28T02:28:31.000+00:00", // 创建时间
    "updateTime": null, // 更新时间
    "children": null, // 子级分类数组
    "url": "/category/1" // url
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 2. 获取分类列表

请求地址: /api/category/getList
请求方式: get
请求参数示例:

1

响应参数示例:

{
  "code": 200, // 状态码
  "msg": "success", // 信息
  "data": [ // 数据
    {
        "id": 1, // 分类ID
        "pid": -1, // 父级ID
        "name": "测试分类", // 分类名
        "desc": "",// 描述
        "count": 0, // 文章数量
        "metaKeywords": "", // SEO关键字
        "metaDescription": "", // SEO描述
        "status": 0, // 状态0:正常,1禁用
        "createTime": "2021-08-28T02:28:31.000+00:00", // 创建时间
        "updateTime": null, // 更新时间
        "children": null, // 子级分类数组
        "url": "/category/1" // url
    }
  ]
  
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 标签相关

# 1. 根据标签ID获取标签信息

请求地址: /api/tag/getById
请求方式: get
请求参数示例:

/api/tag/getById?tagId=1
1

响应参数示例:

{
  "code": 200, // 状态码
  "msg": "success", // 信息
  "data": { // 数据
    "id": 1, // 标签id
    "name": "测试", // 标签名
    "userId": 1, // 用户id
    "createTime": "2021-08-28T02:33:07.000+00:00", // 创建时间
    "updateTime": null, // 更新时间
    "user": null, // 用户信息
    "articleCount": null, // 文章数量
    "url": "/tag/1" // url
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 2. 获取标签列表

请求地址: /api/tag/getList
请求方式: get
请求参数示例:

1

响应参数示例:

{
  "code": 200,
  "msg": "success",
  "data": [
    {
        "id": 1, // 标签id
        "name": "测试", // 标签名
        "userId": 1, // 用户id
        "createTime": "2021-08-28T02:33:07.000+00:00", // 创建时间
        "updateTime": null, // 更新时间
        "user": null, // 用户信息
        "articleCount": null, // 文章数量
        "url": "/tag/1" // url
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 用户相关

# 1. 根据用户ID获取用户信息

请求地址: /api/user/getById
请求方式: get
请求参数示例:

/api/user/getById?userId=1
1

响应参数示例:

{
  "code": 200, // 状态码
  "msg": "success", // 信息
  "data": { // 数据
    "id": 1, // id
    "account": "perfree", // 账号
    "userName": "perfree", // 名称
    "password": null, // 密码
    "salt": null, // 盐值
    "status": 0, // 状态:0正常,1禁用
    "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
    "roleId": 1, // 角色ID 
    "createTime": "2021-08-10T00:15:11.000+00:00", // 创建时间
    "updateTime": "2021-08-10T07:57:38.000+00:00", // 更新时间
    "captcha": null, 
    "website": null, // 网址
    "role": { // 角色信息
      "id": 1, // id
      "name": "管理员", // 角色名
      "description": "网站管理员", // 描述
      "code": "admin", // 代码
      "createTime": null, // 创建时间
      "updateTime": null // 更新时间
    },
    "email": "perfree@126.com" // 邮箱
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 2. 获取当前登录用户

请求地址: /api/user/getLoginUser
请求方式: get
请求参数示例:

,header中携带Authorization信息(token)或者session中存在当前登录用户可获取到
1

响应参数示例:

{
  "code": 200, // 状态码
  "msg": "success", // 信息
  "data": { // 数据
    "id": 1, // id
    "account": "perfree", // 账号
    "userName": "perfree", // 名称
    "password": null, // 密码
    "salt": null, // 盐值
    "status": 0, // 状态:0正常,1禁用
    "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
    "roleId": 1, // 角色ID 
    "createTime": "2021-08-10T00:15:11.000+00:00", // 创建时间
    "updateTime": "2021-08-10T07:57:38.000+00:00", // 更新时间
    "captcha": null, 
    "website": null, // 网址
    "role": { // 角色信息
      "id": 1, // id
      "name": "管理员", // 角色名
      "description": "网站管理员", // 描述
      "code": "admin", // 代码
      "createTime": null, // 创建时间
      "updateTime": null // 更新时间
    },
    "email": "perfree@126.com" // 邮箱
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 友链相关

# 1. 获取友链数据

请求地址: /api/link/getList
请求方式: post
请求参数示例:

{
	"pageIndex": 1, // 当前页码
	"pageSize": 30 // 每页数据量
}
1
2
3
4

响应参数示例:

{
  "pageIndex": 1, // 当前页码
  "pageSize": 30, // 每页数据量
  "total": 1, // 总数据量
  "data": [ // 数据数组
    {
      "id": 1, // id
      "name": "测试", // 名称
      "logo": "https://gravatar.loli.net/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // logo地址
      "desc": "测试网站", // 描述
      "address": "www.yinpengfei.com", // 网站地址
      "createTime": "2021-08-28T02:41:40.000+00:00", // 创建时间
      "updateTime": null // 更新时间
    }
  ],
  "code": 200, // 状态码
  "msg": null // 信息
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 评论相关

# 1. 根据文章ID获取评论分页列表

请求地址: /api/comment/getCommentByArticleId
请求方式: post
请求参数示例:

{
	"form": {
		"articleId": 1 // 文章id
	},
	"pageIndex": 1, // 页码
	"pageSize": 30 // 每页数据量 
}
1
2
3
4
5
6
7

响应参数示例:

{
  "pageIndex": 1, // 页码
  "pageSize": 30, // 每页数据量
  "total": 13, // 总数
  "data": [ // 数据
    {
      "id": 8, // id
      "pid": -1, // 父级id
      "topPid": -1, // 最顶层父级id
      "articleId": 1, // 文章id
      "userId": null, // 用户id
      "content": "该罚的罚", // 内容
      "avatar": "http://www.gravatar.com/avatar/635e66d06c6c1ed34903fc3afca02dfa?s=32", // 头像
      "website": "www.yinpengfei.com", // 网站地址
      "email": "perfree@126.com",// 邮箱
      "userName": "admin", // 名称
      "status": 0, // 状态:0正常,1:待审核
      "createTime": "2021-08-10T03:17:50.000+00:00", // 创建时间
      "updateTime": null, // 更新时间
      "user": null, // 用户信息
      "child": [], // 子级评论信息
      "parent": null // 父级评论信息
    }
  ],
  "code": 0, // 状态码
  "msg": null // 信息
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Last Updated: 9/14/2021, 9:27:26 AM