CoderHub接口文档
Coderhub旨在创建一个程序员分享生活动态的平台。
完成的功能如下:
-
用户管理系统
-
内容管理系统
-
内容评论管理
-
内容标签管理
-
文件管理系统
接口完整请求示例:http://127.0.0.1:8000/users
github仓库:https://github.com/zep03/koa-coderhub(接口文档编写整理不易,如果帮到了您,麻烦给一个star,谢谢!)
一、用户管理系统
1. 用户注册
1.1 基本信息
Path: /users
Method: POST
**接口描述:**用户注册接口
1.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
name | String | 是 | 无 | ||
password | String | 是 | 无 |
{"name": "zep6","password": "123456"
}
1.3 返回数据
{"fieldCount": 0,"affectedRows": 1,"insertId": 15,"info": "","serverStatus": 2,"warningStatus": 0
}
1.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
包括:参数缺失(用户名或者密码不能为空) - 409 用户已存在
- 500 服务器内部异常
2. 用户登录
2.1 基本信息
Path: /login
Method: POST
**接口描述:**用户登录接口
2.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
name | String | 是 | 无 | ||
password | String | 是 | 无 |
{"name": "zep6","password": "123456"
}
2.3 返回数据
{"id": 15,"name": "zep6","token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTUsIm5hbWUiOiJ6ZXA2IiwiaWF0IjoxNjI5MDI3MDgwLCJleHAiOjE2MjkxMTM0ODB9.d6KKRSm2G_29-cKeI6wKRJRpXeVao82kHoboBvKiRjsSVRD71GQWOMv3TfktfgtexfijY1suNkFH8O0n6StRBPwyWWo-Tgm02M1DxrQ9j7mwUpch8l4pZPliM2Jv8tysAuCflzz2lEYrZ08EnG3kSxksEez-1BtumD46vtv3_GA"
}
token说明:
token用于访问需要身份认证的普通接口,有效期1天
2.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
包括:参数缺失(用户名或者密码不能为空)、用户名不存在、密码错误等 - 500 服务器内部异常
3. 获取用户头像
3.1 基本信息
Path: /users/:userId/avatar
Method: GET
**接口描述:**获取用户头像的接口
3.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数,
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
无 | 无 | 无 |
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
userId | String | 是 | 无 |
3.3 返回数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IUcyouYp-1629040885767)(C:\Users\Zep\AppData\Roaming\Typora\typora-user-images\image-20210815200024057.png)]
3.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
包括:参数缺失 - 500 服务器内部异常
4. 测试登录接口
4.1 基本信息
Path:/test
Method: POST
**接口描述:**用户测试登录接口
4.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
4.3 返回数据
授权成功
4.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 500 服务器内部异常
二、内容管理系统
1. 发布动态
1.1 基本信息
Path:/moment
Method: POST
**接口描述:**发布动态接口
1.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
content | String | 是 | 无 |
{"content": "我是动态内容111"
}
1.3 返回数据
{"fieldCount": 0,"affectedRows": 1,"insertId": 26,"info": "","serverStatus": 2,"warningStatus": 0
}
1.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 500 服务器内部异常
2. 获取动态列表
1.1 基本信息
Path:/moment?offset=0&size=5
举例:http://localhost:8000/moment?offset=0&size=5
Method: GET
**接口描述:**获取动态列表接口
2.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
Query
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
offset | String | 是 | 无 | 0 | 跳过几条数据 |
size | String | 是 | 无 | 5 | 返回数据的大小 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
2.3 返回数据
[{"id": 1,"content": "我说错了,C语言才是最好的语言~","createAt": "2020-11-23T14:05:23.000Z","updateTime": "2020-11-27T13:35:42.000Z","author": {"id": 4,"name": "lucy","avatarUrl": "http://localhost:8000/users/4/avatar"},"commentCount": 6,"labelCount": 4},{"id": 3,"content": "曾几何时,他也好,她也好,都是这家伙的被害者。所以我才憎恶着。这个强求着所谓“大家”的世界。必须建立在牺牲某人之上才能成立的低劣的和平。以温柔和正义粉饰,明明是恶毒之物却登大雅之堂,随着时间的流逝越发凶恶,除欺瞒外别无其二的空虚的概念。过去和世界都是无法改变的。发生过的事情和所谓的“大家”都是无法改变的。但是,并不是说自己只能隶属于他们","createAt": "2020-11-23T14:21:19.000Z","updateTime": "2020-11-23T14:21:19.000Z","author": {"id": 1,"name": "coderwhy","avatarUrl": null},"commentCount": 1,"labelCount": 0},{"id": 4,"content": "不要告诉我你不需要保护,不要告诉我你不寂寞,知微,我只希望你,在走过黑夜的那个时辰,不要倔强的选择一个人。","createAt": "2020-11-23T14:21:19.000Z","updateTime": "2020-11-23T14:21:19.000Z","author": {"id": 3,"name": "lilei","avatarUrl": null},"commentCount": 0,"labelCount": 0},{"id": 5,"content": "If you shed tears when you miss the sun, you also miss the stars.如果你因失去了太阳而流泪,那么你也将失去群星了。","createAt": "2020-11-23T14:21:19.000Z","updateTime": "2020-11-23T14:21:19.000Z","author": {"id": 1,"name": "coderwhy","avatarUrl": null},"commentCount": 0,"labelCount": 0},{"id": 6,"content": "在世间万物中我都发现了你,渺小时,你是阳光下一粒种子,伟大时,你隐身在高山海洋里。","createAt": "2020-11-23T14:21:19.000Z","updateTime": "2020-11-23T14:21:19.000Z","author": {"id": 2,"name": "kobe","avatarUrl": null},"commentCount": 0,"labelCount": 0}
]
2.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 500 服务器内部异常
3. 获取动态详情
3.1 基本信息
Path:/moment/:momentId
Method: GET
**接口描述:**获取动态详情接口
3.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | String | 是 | 无 | 24 |
3.3 返回数据
{"id": 24,"content": "JS是世界上最好的语言~","createAt": "2021-08-13T05:26:56.000Z","updateTime": "2021-08-13T05:26:56.000Z","author": {"id": 14,"name": "zep5","avatarUrl": "http://localhost:8000/users/14/avatar"}
}
3.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 500 服务器内部异常
4. 修改动态
4.1 基本信息
Path:/moment/:momentId
Method: PATCH
接口描述:修改动态接口,该接口只允许用户修改自己所发布的动态,不允许用户修改其他用户发布的动态!
修改其他用户发布的动态将返回403 UNPERMISSION 您不具备操作的权限
4.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | String | 是 | 无 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
content | String | 是 | 无 |
{"content": "啦啦啦啦啦~~"
}
4.3 返回数据
{"fieldCount": 0,"affectedRows": 1,"insertId": 0,"info": "Rows matched: 1 Changed: 1 Warnings: 0","serverStatus": 2,"warningStatus": 0,"changedRows": 1
}
4.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
5. 删除动态
5.1 基本信息
Path:/moment/:momentId
Method: DELETE
接口描述:删除动态接口,该接口只允许用户删除自己所发布的动态,不允许用户删除其他用户发布的动态!
删除其他用户发布的动态将返回403 UNPERMISSION 您不具备操作的权限
5.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | String | 是 | 无 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
5.3 返回数据
{"fieldCount": 0,"affectedRows": 1,"insertId": 0,"info": "","serverStatus": 2,"warningStatus": 0
}
5.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
三、内容标签管理
1. 给动态添加标签
1.1 基本信息
Path:/moment/:momentId/labels
Method: POST
接口描述:给动态添加标签的接口,该接口只允许用户为自己所发布的动态添加标签,不允许用户为其他用户发布的动态添加标签!
为其他用户发布的动态添加标签,将返回403 UNPERMISSION 您不具备操作的权限
1.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | String | 是 | 无 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
labels | Array | 是 | 无 |
{"labels": ["HTML", "VUE", "JWT"]
}
1.3 返回数据
{"statusCode": 200,"message": "给动态添加标签成功"
}
1.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
2. 根据momentId查询标签
2.1 基本信息
Path:/moment/:momentId/labels
Method: GET
**接口描述:**根据momentId查询标签的接口
2.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
无 | 无 | 无 |
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | String | 是 | 无 | 24 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
2.3 返回数据
[{"labelId": 3,"labelName": "爱情","momentId": 24},{"labelId": 16,"labelName": "后端","momentId": 24},{"labelId": 17,"labelName": "python","momentId": 24},{"labelId": 19,"labelName": "css","momentId": 24},{"labelId": 21,"labelName": "HTML","momentId": 24},{"labelId": 22,"labelName": "VUE","momentId": 24},{"labelId": 23,"labelName": "JWT","momentId": 24}
]
2.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
3. 添加标签
3.1 基本信息
Path:/label
Method: POST
**接口描述:**添加标签接口
3.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
name | String | 是 | 无 | 标签名称 |
{"name": "JavaEE"
}
3.3 返回数据
{"fieldCount": 0,"affectedRows": 1,"insertId": 24,"info": "","serverStatus": 2,"warningStatus": 0
}
3.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 500 服务器内部异常
4. 获取标签列表
4.1 基本信息
Path:/label?limit=5&offset=0
举例: http://localhost:8000/label?limit=5&offset=0
Method: GET
**接口描述:**获取标签列表接口
4.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
无 | 无 | 是 |
Query
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
limit | String | 是 | 无 | 5 | 一次请求返回的标签个数 |
offset | String | 是 | 无 | 0 | 跳过几条数据 |
4.3 返回数据
[{"id": 1,"name": "前端","createAt": "2020-11-30T13:06:04.000Z","updateAt": "2020-11-30T13:06:04.000Z"},{"id": 2,"name": "文学","createAt": "2020-11-30T13:13:50.000Z","updateAt": "2020-11-30T13:13:50.000Z"},{"id": 3,"name": "爱情","createAt": "2020-11-30T13:13:53.000Z","updateAt": "2020-11-30T13:13:53.000Z"},{"id": 4,"name": "青春","createAt": "2020-11-30T13:14:04.000Z","updateAt": "2020-11-30T13:14:04.000Z"},{"id": 5,"name": "C语言","createAt": "2020-11-30T13:35:10.000Z","updateAt": "2020-11-30T13:35:10.000Z"}
]
4.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 500 服务器内部异常
四、内容评论管理
1. 发表评论
1.1 基本信息
Path:/comment
Method: POST
**接口描述:**发表评论的接口
1.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | Int | 是 | 无 | ||
content | String | 是 | 无 |
{"momentId": 24,"content": "评论momentId为24的动态"
}
1.3 返回数据
{"fieldCount": 0,"affectedRows": 1,"insertId": 18,"info": "","serverStatus": 2,"warningStatus": 0
}
1.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
2. 回复评论
2.1 基本信息
Path:/comment/:commentId/reply
Method: POST
**接口描述:**回复评论的接口
2.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
commentId | String | 是 | 无 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | Int | 是 | 无 | ||
content | String | 是 | 无 |
{"momentId": 24,"content": "我是评论momentId为24的一条评论"
}
2.3 返回数据
{"fieldCount": 0,"affectedRows": 1,"insertId": 22,"info": "","serverStatus": 2,"warningStatus": 0
}
2.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
3. 修改评论
3.1 基本信息
Path:/comment/:commentId
Method: PATCH
接口描述:修改评论的接口, 该接口只允许用户修改自己发布的评论,不允许用户修改其他用户发布的评论!
修改其他用户发布的评论,将返回403 UNPERMISSION 您不具备操作的权限
3.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
commentId | String | 是 | 无 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
content | String | 是 | 无 |
{"content": "我修改自己发布的id为22的评论"
}
3.3 返回数据
{"fieldCount": 0,"affectedRows": 1,"insertId": 0,"info": "Rows matched: 1 Changed: 1 Warnings: 0","serverStatus": 2,"warningStatus": 0,"changedRows": 1
}
3.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
4. 删除评论
4.1 基本信息
Path:/comment/:commentId
Method: DELETE
接口描述:删除评论的接口, 该接口只允许用户删除自己发布的评论,不允许用户删除其他用户发布的评论!
删除其他用户发布的评论,将返回403 UNPERMISSION 您不具备操作的权限
4.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
commentId | String | 是 | 无 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
4.3 返回数据
{"fieldCount": 0,"affectedRows": 1,"insertId": 0,"info": "","serverStatus": 2,"warningStatus": 0
}
4.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
5. 根据动态id获取评论列表
5.1 基本信息
Path:/moment?momentId=24
举例:http://localhost:8000/comment?momentId=24
Method: GET
**接口描述:**根据动态id获取评论列表的接口
5.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
无 | 无 | 无 |
Query
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | String | 是 | 无 | 24 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
5.3 返回数据
[{"id": 9,"content": "js不是最好的语言","commentId": null,"createTime": "2021-08-13T13:08:14.000Z","user": {"id": 14,"name": "zep5"}},{"id": 10,"content": "js不是最好的语言","commentId": null,"createTime": "2021-08-13T13:11:03.000Z","user": {"id": 14,"name": "zep5"}},{"id": 11,"content": "世界上没有最好的语言~~","commentId": 9,"createTime": "2021-08-13T13:28:42.000Z","user": {"id": 14,"name": "zep5"}},{"id": 12,"content": "世界上没有最好的语言~~","commentId": 9,"createTime": "2021-08-13T13:28:49.000Z","user": {"id": 14,"name": "zep5"}},{"id": 13,"content": "世界上没有最好的语言~~","commentId": 9,"createTime": "2021-08-13T13:29:25.000Z","user": {"id": 14,"name": "zep5"}},{"id": 18,"content": "评论momentId为24的动态","commentId": null,"createTime": "2021-08-15T14:06:33.000Z","user": {"id": 14,"name": "zep5"}},{"id": 21,"content": "我是评论momentId为2的一条评论","commentId": 18,"createTime": "2021-08-15T14:17:55.000Z","user": {"id": 14,"name": "zep5"}}
5.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
五、文件管理系统
1. 用户上传头像
1.1 基本信息
Path:/upload/avatar
Method: POST
**接口描述:**用户上传头像的接口
1.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | multipart/form-data; boundary= | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
avatar | File | 是 | 无 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wVUqvqdK-1629040885769)(CoderHub接口文档.assets/image-20210815225524847.png)]
1.3 返回数据
{"statusCode": 200,"message": "上传头像成功"
}
1.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
2. 上传动态的配图
2.1 基本信息
Path:/upload/picture/?momentId=1
举例: http://localhost:8000//upload/picture?momentId=1
Method: POST
**接口描述:**上传动态的配图的接口
2.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | multipart/form-data; boundary= | 是 | ||
Authorization | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM | 是 |
注意:
在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格
token说明:token用于访问需要身份认证的普通接口,有效期1天
Query
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | String | 是 | 无 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
avatar | File | 是 | 无 |
注意:一次请求最大可允许上传9张配图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sXiuX5aN-1629040885770)(CoderHub接口文档.assets/image-20210815230049942.png)]
2.3 返回数据
动态的配图上传完成!
2.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
3. 根据filename获取动态配图
3.1 基本信息
Path:/moment/images/:filename
Method: GET
**接口描述:**根据filename获取动态配图的接口。
注意:
该接口获取动态配图时,可根据前端业务需求,返回三种规格大小的图片
大图:http://localhost:8000/moment/images/59f56a3b77a12416698847fe87372269?type=large
中图:http://localhost:8000/moment/images/59f56a3b77a12416698847fe87372269?type=middle
小图:http://localhost:8000/moment/images/59f56a3b77a12416698847fe87372269?type=small
3.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
无 | 无 | 无 |
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
filename | String | 是 | 无 | 59f56a3b77a12416698847fe87372269、 59f56a3b77a12416698847fe87372269?type=small、59f56a3b77a12416698847fe87372269?type=middle、59f56a3b77a12416698847fe87372269?type=large |
Query
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
type | 无 | 否 | null | 图片的类型:large(大图)、middle(中图)、small(小图)。 1.可不传这个type参数,不传时默认展示中图大小; 2. type参数值如果不是large、middle、small这三个中的一个,也默认展示中图大小的图片 |
3.3 返回数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Phxtknc1-1629040885771)(CoderHub接口文档.assets/image-20210815215647632.png)]
3.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
4. 根据momentId获取动态配图
4.1 基本信息
Path:/moment/img/:momentId
Method: GET
**接口描述:**根据momentId查询动态配图的接口
4.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
无 | 无 | 无 |
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | String | 是 | 无 | 6 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
4.3 返回数据
{"statusCode": 200,"message": "获取动态配图成功","imageList": [{"imgUrl": "http://localhost:8000/moment/images/107632322c8ed31f1901d0bfe6aca4f9","mimetype": "image/png","size": 726597}]
}
4.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
---- | :— | ------------------------------------------------------------ |
| type | 无 | 否 | null | | 图片的类型:large(大图)、middle(中图)、small(小图)。 1.可不传这个type参数,不传时默认展示中图大小; 2. type参数值如果不是large、middle、small这三个中的一个,也默认展示中图大小的图片 |
3.3 返回数据
[外链图片转存中…(img-Phxtknc1-1629040885771)]
3.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常
4. 根据momentId获取动态配图
4.1 基本信息
Path:/moment/img/:momentId
Method: GET
**接口描述:**根据momentId查询动态配图的接口
4.2 请求参数
请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数
/users/:userId/avatar里的**:userId就是Params参数**):
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
无 | 无 | 无 |
Params
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
momentId | String | 是 | 无 | 6 |
Body
参数名称 | 类型 | 是否必须 | 默认值 | 示例 | 备注 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 |
4.3 返回数据
{"statusCode": 200,"message": "获取动态配图成功","imageList": [{"imgUrl": "http://localhost:8000/moment/images/107632322c8ed31f1901d0bfe6aca4f9","mimetype": "image/png","size": 726597}]
}
4.4 返回HTTP状态码
- 200 OK
- 400 请求参数错误
- 401 UNAUTHORIZATION 无效的token
- 403 UNPERMISSION 您不具备操作的权限
- 404 NOT FOUND
- 500 服务器内部异常