V1.0
接口安全说明
所有接口需要实现签名,前台向后台发起请求前需要在header中添加签名参数和签名,以减少后台服务器的被攻击可能性。
签名参数至少包含url、时间戳,有token的接口也需要对token签名,以参数名首字母排序后使用&符号拼接后,进行rsa256算法签名。
环境说明
| 环境名称 | 协议 | IP/域名 | 端口 | 私钥 |
|---|---|---|---|---|
| 开发环境 | HTTP | 127.0.0.1 | 8080 | - |
| 测试环境 | - | - | - | - |
| 联调环境 | - | - | - | - |
| 预生产环境 | - | - | - | - |
| 生产环境 | - | - | - | - |
统一响应对象
| 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|---|---|---|---|
| code | String | Y | 响应码 |
| msg | String | Y | 响应描述 |
| requestId | String | Y | 请求id |
| data | Object | N | 响应结果 |
接口定义
文章分类或归档列表查询
| 接口名称 | 文章分类或归档列表查询 ||||
|———–|—————————–|
| URL | tzxblog/blog/category-list ||||
| 协议 | HTTP ||||
| 请求类型 | GET ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
| URL参数 | queryType | String | Y | index:首页; user:用户; recom:推荐;hot:热门; file:归档 |
|| userId | String | N | 用户id |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | List
文章列表分页查询
| 接口名称 | 文章列表分页查询 ||||
|———–|————————-|
| URL | tzxblog/blog/blog-list ||||
| 协议 | HTTP ||||
| 请求类型 | GET ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
| URL参数 | queryType | String | Y | index:首页;user:用户;recom:推荐;hot:热门;file:归档 |
|| pageIndex | Long | N | 页码,默认1 |
|| pagSize | Long | N | 页数,默认10 |
|| userId | String | N | 用户id |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | PageInfo
文章详情查询
| 接口名称 | 文章详情查询 ||||
|———–|———————–|
| URL | tzxblog/blog/bloginfo ||||
| 协议 | HTTP ||||
| 请求类型 | GET ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
| URL参数 | blogId | String | Y | 博客id |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | BlogInfo | N | 博客对象 |
文章发布
| 接口名称 | 文章发布 ||||
|——————|————————|
| URL | tzxblog/blog/add-blog ||||
| 协议 | HTTP ||||
| 请求类型 | POST ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | Content-Type | String | Y | application/json |
|| timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
|| token | String | Y | token |
| Body参数 | blogTitle | String | Y | 博客标题 |
|| blogContent | String | Y | 博客内容 |
|| blogCategroy | String | Y | 网站博客分类 |
|| blogUserCategroy | String | Y | 个人分类 |
|| blogType | String | Y | 博客类型: original:原创;reprint:转载;translate:翻译; |
|| blogPower | String | Y | 博客权限:private:私密;public:公开 |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | y | 响应码 |
|| msg | String | y | 响应描述 |
|| requestId | String | y | 请求id |
|| data | String | N | 博客id |
文章删除
| 接口名称 | 文章删除 ||||
|———–|—————————|
| URL | tzxblog/blog/remove-blog ||||
| 协议 | HTTP ||||
| 请求类型 | DELETE ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
|| token | String | Y | token |
| URL参数 | blogId | String | Y | 博客id |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | String | N | 博客id |
文章修改
| 接口名称 | 文章修改 ||||
|——————|—————————|
| URL | tzxblog/blog/update-blog ||||
| 协议 | HTTP ||||
| 请求类型 | POST ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | Content-Type | String | Y | application/json |
|| timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
|| token | String | Y | token |
| Body参数 | blogTitle | String | Y | 博客标题 |
|| blogContent | String | Y | 博客内容 |
|| blogCategroy | String | Y | 网站博客分类 |
|| blogUserCategroy | String | Y | 个人分类 |
|| blogType | String | Y | 博客类型:original:原创; reprint:转载;translate:翻译; |
|| blogPower | String | Y | 博客权限: private:私密;public:公开 |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | y | 响应码 |
|| msg | String | y | 响应描述 |
|| requestId | String | y | 请求id |
|| data | String | N | 博客id |
评论列表分页查询
| 接口名称 | 评论列表分页查询 ||||
|———–|——————————-|
| URL | tzxblog/comment/comment-list ||||
| 协议 | HTTP ||||
| 请求类型 | GET ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
| URL参数 | pageIndex | Long | N | 页码,默认1 |
|| pagSize | Long | N | 页数,默认10 |
|| userId | String | N | 用户id |
|| blogId | String | N | 博客id |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | PageInfo
文章评论
| 接口名称 | 文章评论 ||||
|—————-|——————————|
| URL | tzxblog/comment/add-comment ||||
| 协议 | HTTP ||||
| 请求类型 | POST ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | Content-Type | String | Y | application/json |
|| timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
|| token | String | Y | token |
| Body参数 | blogId | String | Y | 博客id |
|| commentContent | String | Y | 评论内容 |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | String | N | 博客id |
文件列表分页查询
| 接口名称 | 文件列表分页查询 ||||
|———–|————————-|
| URL | tzxblog/file/file-list ||||
| 协议 | HTTP ||||
| 请求类型 | GET ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
| URL参数 | pageIndex | Long | N | 页码,默认1 |
|| pagSize | Long | N | 页数,默认10 |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | PageInfo<FileInfo | N | 评论分页对象,参见附录PageInfo<FileInfo |
文件上传
| 接口名称 | 文件上传 ||||
|———–|—————————|
| URL | tzxblog/file/upload-file ||||
| 协议 | HTTP ||||
| 请求类型 | POST ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | Content-Type | String | Y | multipart/form-data |
|| timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
|| token | String | Y | token |
| Form参数 | fileName | String | Y | 文件名称 |
|| file | MultipartFile | Y | 文件 |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | String | N | 文件id |
文件下载
| 接口名称 | 文件下载 ||||
|———–|—————————–|
| URL | tzxblog/file/download-file ||||
| 协议 | HTTP ||||
| 请求类型 | POST ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | Content-Type | String | Y | multipart/form-data |
|| timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
|| token | String | Y | token |
| URL参数 | fileId | String | Y | 文件id |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|-|-|-|-|-|
用户基本信息查询
| 接口名称 | 用户基本信息查询 ||||
|———–|———————–|
| URL | tzxblog/user/userinfo ||||
| 协议 | HTTP ||||
| 请求类型 | GET ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
| URL参数 | userId | String | Y | 用户id |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | UserInfo | N | 用户信息 |
用户注册
| 接口名称 | 用户注册 ||||
|————|———————–|
| URL | tzxblog/user/register ||||
| 协议 | HTTP ||||
| 请求类型 | POST ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | Content-Type | String | Y | application/json |
|| timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
| Body参数 | userAccount | String | Y | 账号 |
|| password | String | Y | 密码 |
|| rePassword | String | Y | 密码确认 |
|| userPhone | String | Y | 手机号 |
|| userEmail | String | Y | 邮箱 |
|| userName | String | N | 姓名 |
|| userNick | String | N | 昵称 |
|| userAge | Integer | N | 年龄 |
|| userDesc | String | N | 简介 |
|| userAddr | String | N | 地址 |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | String | N | 用户id |
用户登录
| 接口名称 | 用户登录 ||||
|———–|——————–|
| URL | tzxblog/user/login ||||
| 协议 | HTTP ||||
| 请求类型 | POST ||||
| 请求参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
| Header参数 | Content-Type | String | Y | application/json |
|| timestamp | String | Y | 时间戳 |
|| sign | String | Y | 签名 |
| Body参数 | userAccount | String | Y | 账号 |
|| password | String | Y | 密码 |
| 响应参数 | 参数名称 | 数据类型 | 是否必须 | 参数描述 |
|| code | String | Y | 响应码 |
|| msg | String | Y | 响应描述 |
|| requestId | String | Y | 请求id |
|| data | LoginInfo | N | 登录信息 |
附录
附录一
CategoryInfo
| 属性名 | 数据类型 | 是否必须 | 属性描述 |
|---|---|---|---|
| id | String | Y | 分类id |
| name | String | Y | 分类名称 |
PageInfo
| 属性名 | 数据类型 | 是否必须 | 属性描述 |
|---|---|---|---|
| pageIndex | Long | Y | 页码 |
| pageSize | Long | Y | 每页数量 |
| totalCount | Long | Y | 总数 |
| pageCount | Long | Y | 页数 |
| pageContent | Object | N | 分页内容 |
BlogInfo
| 属性名 | 数据类型 | 是否必须 | 属性描述 |
|---|---|---|---|
| id | String | Y | 博客id |
| blogTitle | String | Y | 博客标题 |
| blogAbstract | String | Y | 博客摘要 |
| readCount | Long | Y | 阅读数 |
| commentCount | Long | Y | 评论数 |
| updateTime | String | Y | 更新时间 |
| createTime | String | Y | 创建时间 |
| blogContent | String | Y | 博客内容 |
| blogCategroy | String | Y | 网站博客分类 |
| blogUserCategroy | String | Y | 个人分类 |
| blogType | String | Y | 博客类型: original:原创;reprint:转载;translate:翻译; |
| blogPower | String | Y | 博客权限:private:私密; public:公开 |
| userId | String | Y | 用户id |
| userNick | String | Y | 用户昵称 |
CommentInfo
| 属性名 | 数据类型 | 是否必须 | 属性描述 |
|---|---|---|---|
| id | String | Y | 评论id |
| updateTime | String | Y | 更新时间 |
| createTime | String | Y | 创建时间 |
| commentContent | String | Y | 评论内容 |
FileInfo
| 属性名 | 数据类型 | 是否必须 | 属性描述 |
|---|---|---|---|
| id | String | Y | 文件id |
| updateTime | String | Y | 更新时间 |
| createTime | String | Y | 创建时间 |
| fileUrl | String | Y | 文件路径 |
| fileName | String | Y | 文件名称 |
| fileDesc | String | Y | 文件描述 |
| downCount | Long | Y | 下载次数 |
UserInfo
| 属性名 | 数据类型 | 是否必须 | 属性描述 |
|---|---|---|---|
| id | String | Y | 文件id |
| updateTime | String | Y | 更新时间 |
| createTime | String | Y | 创建时间 |
| userAccount | String | Y | 账号 |
| userName | String | N | 姓名 |
| userNick | String | Y | 昵称 |
| userAge | Integer | N | 年龄 |
| userDesc | String | N | 简介 |
| userAddr | String | N | 地址 |
| userPhone | String | Y | 手机号 |
| userEmail | String | Y | 邮箱 |
| userImg | String | Y | 头像url |
LoginInfo
| 属性名 | 数据类型 | 是否必须 | 属性描述 |
|---|---|---|---|
| user | UserInfo | Y | 用户对象 |
| token | UserToken | Y | 用户token对象 |
UserToken
| 属性名 | 数据类型 | 是否必须 | 属性描述 |
|---|---|---|---|
| access_token | String | Y | AT |
| expires_in | Long | Y | AT有效期 |
| refresh_token | String | Y | RT |
| refresh_expires_in | Long | Y | RT有效期 |
| scope | String | N | 用户权限,备用 |
项目地址
项目代码和文档均以github托管,地址如下:
https://github.com/tuzongxun/tzxblog