CoderHub接口文档

CoderHub接口文档

Coderhub旨在创建一个程序员分享生活动态的平台。

完成的功能如下:

  1. 用户管理系统

  2. 内容管理系统

  3. 内容评论管理

  4. 内容标签管理

  5. 文件管理系统

    接口完整请求示例: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-Typeapplication/json

Body

参数名称类型是否必须默认值示例备注
nameString
passwordString
{"name": "zep6","password": "123456"
}

1.3 返回数据

{"fieldCount": 0,"affectedRows": 1,"insertId": 15,"info": "","serverStatus": 2,"warningStatus": 0
}

1.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
    包括:参数缺失(用户名或者密码不能为空)
  3. 409 用户已存在
  4. 500 服务器内部异常

2. 用户登录

2.1 基本信息

Path: /login

Method: POST

**接口描述:**用户登录接口

2.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json

Body

参数名称类型是否必须默认值示例备注
nameString
passwordString
{"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状态码

  1. 200 OK
  2. 400 请求参数错误
    包括:参数缺失(用户名或者密码不能为空)、用户名不存在、密码错误等
  3. 500 服务器内部异常

3. 获取用户头像

3.1 基本信息

Path: /users/:userId/avatar

Method: GET

**接口描述:**获取用户头像的接口

3.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数,

/users/:userId/avatar里的**:userId就是Params参数**):

Headers

参数名称参数值是否必须示例备注

Params

参数名称类型是否必须默认值示例备注
userIdString

3.3 返回数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IUcyouYp-1629040885767)(C:\Users\Zep\AppData\Roaming\Typora\typora-user-images\image-20210815200024057.png)]

3.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
    包括:参数缺失
  3. 500 服务器内部异常

4. 测试登录接口

4.1 基本信息

Path:/test

Method: POST

**接口描述:**用户测试登录接口

4.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Body

参数名称类型是否必须默认值示例备注

4.3 返回数据

授权成功

4.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 500 服务器内部异常

二、内容管理系统

1. 发布动态

1.1 基本信息

Path:/moment

Method: POST

**接口描述:**发布动态接口

1.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Body

参数名称类型是否必须默认值示例备注
contentString
{"content": "我是动态内容111"
}

1.3 返回数据

{"fieldCount": 0,"affectedRows": 1,"insertId": 26,"info": "","serverStatus": 2,"warningStatus": 0
}

1.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 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-Typeapplication/json

Query

参数名称类型是否必须默认值示例备注
offsetString0跳过几条数据
sizeString5返回数据的大小

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状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 500 服务器内部异常

3. 获取动态详情

3.1 基本信息

Path:/moment/:momentId

Method: GET

**接口描述:**获取动态详情接口

3.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数

/users/:userId/avatar里的**:userId就是Params参数**):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json

Params

参数名称类型是否必须默认值示例备注
momentIdString24

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状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 500 服务器内部异常

4. 修改动态

4.1 基本信息

Path:/moment/:momentId

Method: PATCH

接口描述:修改动态接口,该接口只允许用户修改自己所发布的动态,不允许用户修改其他用户发布的动态!

修改其他用户发布的动态将返回403 UNPERMISSION 您不具备操作的权限

4.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数

/users/:userId/avatar里的**:userId就是Params参数**):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Params

参数名称类型是否必须默认值示例备注
momentIdString

Body

参数名称类型是否必须默认值示例备注
contentString
{"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状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 500 服务器内部异常

5. 删除动态

5.1 基本信息

Path:/moment/:momentId

Method: DELETE

接口描述:删除动态接口,该接口只允许用户删除自己所发布的动态,不允许用户删除其他用户发布的动态!

删除其他用户发布的动态将返回403 UNPERMISSION 您不具备操作的权限

5.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数

/users/:userId/avatar里的**:userId就是Params参数**):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Params

参数名称类型是否必须默认值示例备注
momentIdString

Body

参数名称类型是否必须默认值示例备注

5.3 返回数据

{"fieldCount": 0,"affectedRows": 1,"insertId": 0,"info": "","serverStatus": 2,"warningStatus": 0
}

5.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 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-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Params

参数名称类型是否必须默认值示例备注
momentIdString

Body

参数名称类型是否必须默认值示例备注
labelsArray
{"labels": ["HTML", "VUE", "JWT"]
}

1.3 返回数据

{"statusCode": 200,"message": "给动态添加标签成功"
}

1.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 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

参数名称类型是否必须默认值示例备注
momentIdString24

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状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 500 服务器内部异常

3. 添加标签

3.1 基本信息

Path:/label

Method: POST

**接口描述:**添加标签接口

3.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Body

参数名称类型是否必须默认值示例备注
nameString标签名称
{"name": "JavaEE"
}

3.3 返回数据

{"fieldCount": 0,"affectedRows": 1,"insertId": 24,"info": "","serverStatus": 2,"warningStatus": 0
}

3.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 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

参数名称类型是否必须默认值示例备注
limitString5一次请求返回的标签个数
offsetString0跳过几条数据

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状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 500 服务器内部异常

四、内容评论管理

1. 发表评论

1.1 基本信息

Path:/comment

Method: POST

**接口描述:**发表评论的接口

1.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数

/users/:userId/avatar里的**:userId就是Params参数**):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Params

参数名称类型是否必须默认值示例备注

Body

参数名称类型是否必须默认值示例备注
momentIdInt
contentString
{"momentId": 24,"content": "评论momentId为24的动态"
}

1.3 返回数据

{"fieldCount": 0,"affectedRows": 1,"insertId": 18,"info": "","serverStatus": 2,"warningStatus": 0
}

1.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 500 服务器内部异常

2. 回复评论

2.1 基本信息

Path:/comment/:commentId/reply

Method: POST

**接口描述:**回复评论的接口

2.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数

/users/:userId/avatar里的**:userId就是Params参数**):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Params

参数名称类型是否必须默认值示例备注
commentIdString

Body

参数名称类型是否必须默认值示例备注
momentIdInt
contentString
{"momentId": 24,"content": "我是评论momentId为24的一条评论"
}

2.3 返回数据

{"fieldCount": 0,"affectedRows": 1,"insertId": 22,"info": "","serverStatus": 2,"warningStatus": 0
}

2.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 500 服务器内部异常

3. 修改评论

3.1 基本信息

Path:/comment/:commentId

Method: PATCH

接口描述:修改评论的接口, 该接口只允许用户修改自己发布的评论,不允许用户修改其他用户发布的评论!

修改其他用户发布的评论,将返回403 UNPERMISSION 您不具备操作的权限

3.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数

/users/:userId/avatar里的**:userId就是Params参数**):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Params

参数名称类型是否必须默认值示例备注
commentIdString

Body

参数名称类型是否必须默认值示例备注
contentString
{"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状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 500 服务器内部异常

4. 删除评论

4.1 基本信息

Path:/comment/:commentId

Method: DELETE

接口描述:删除评论的接口, 该接口只允许用户删除自己发布的评论,不允许用户删除其他用户发布的评论!

删除其他用户发布的评论,将返回403 UNPERMISSION 您不具备操作的权限

4.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数

/users/:userId/avatar里的**:userId就是Params参数**):

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Params

参数名称类型是否必须默认值示例备注
commentIdString

Body

参数名称类型是否必须默认值示例备注

4.3 返回数据

{"fieldCount": 0,"affectedRows": 1,"insertId": 0,"info": "","serverStatus": 2,"warningStatus": 0
}

4.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 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

参数名称类型是否必须默认值示例备注
momentIdString24

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状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 500 服务器内部异常

五、文件管理系统

1. 用户上传头像

1.1 基本信息

Path:/upload/avatar

Method: POST

**接口描述:**用户上传头像的接口

1.2 请求参数

请求参数(GET 方法就是 Query 参数,POST 方法就是 Body 参数

/users/:userId/avatar里的**:userId就是Params参数**):

Headers

参数名称参数值是否必须示例备注
Content-Typemultipart/form-data; boundary=
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Params

参数名称类型是否必须默认值示例备注

Body

参数名称类型是否必须默认值示例备注
avatarFile

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wVUqvqdK-1629040885769)(CoderHub接口文档.assets/image-20210815225524847.png)]

1.3 返回数据

{"statusCode": 200,"message": "上传头像成功"
}

1.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 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-Typemultipart/form-data; boundary=
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQsIm5hbWUiOiJ6ZXA1IiwiaWF0IjoxNjI5MDEzOTgyLCJleHAiOjE2MjkxMDAzODJ9.MpIFWPy8ojLXFj8LmcC18J8X8bxSmQf_fH3tqttNvfvCb7ck7piVgus37M8YN4r-dQiit9Wn6gxcEMQsj4ppxgz6ESpDVd9BeYbG12GJ3d4CWqZYII3K5bR1VCq-OYLhwgUAgyvyRGmUdl1HnUWMIvIwl4ZVvujiVdMqSGR_wSM

注意:

在Authorization 请求头中携带的token,格式为"Bearer "拼接上token,注意Bearer后有一个空格

token说明:token用于访问需要身份认证的普通接口,有效期1天

Query

参数名称类型是否必须默认值示例备注
momentIdString

Body

参数名称类型是否必须默认值示例备注
avatarFile

注意:一次请求最大可允许上传9张配图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sXiuX5aN-1629040885770)(CoderHub接口文档.assets/image-20210815230049942.png)]

2.3 返回数据

动态的配图上传完成!

2.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 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

参数名称类型是否必须默认值示例备注
filenameString59f56a3b77a12416698847fe87372269、 59f56a3b77a12416698847fe87372269?type=small、59f56a3b77a12416698847fe87372269?type=middle、59f56a3b77a12416698847fe87372269?type=large

Query

参数名称类型是否必须默认值示例备注
typenull图片的类型:large(大图)、middle(中图)、small(小图)。 1.可不传这个type参数,不传时默认展示中图大小; 2. type参数值如果不是large、middle、small这三个中的一个,也默认展示中图大小的图片

3.3 返回数据


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Phxtknc1-1629040885771)(CoderHub接口文档.assets/image-20210815215647632.png)]

3.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 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

参数名称类型是否必须默认值示例备注
momentIdString6

Body

参数名称类型是否必须默认值示例备注

4.3 返回数据

{"statusCode": 200,"message": "获取动态配图成功","imageList": [{"imgUrl": "http://localhost:8000/moment/images/107632322c8ed31f1901d0bfe6aca4f9","mimetype": "image/png","size": 726597}]
}

4.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 500 服务器内部异常

---- | :— | ------------------------------------------------------------ |
| type | 无 | 否 | null | | 图片的类型:large(大图)、middle(中图)、small(小图)。 1.可不传这个type参数,不传时默认展示中图大小; 2. type参数值如果不是large、middle、small这三个中的一个,也默认展示中图大小的图片 |

3.3 返回数据


[外链图片转存中…(img-Phxtknc1-1629040885771)]

3.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 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

参数名称类型是否必须默认值示例备注
momentIdString6

Body

参数名称类型是否必须默认值示例备注

4.3 返回数据

{"statusCode": 200,"message": "获取动态配图成功","imageList": [{"imgUrl": "http://localhost:8000/moment/images/107632322c8ed31f1901d0bfe6aca4f9","mimetype": "image/png","size": 726597}]
}

4.4 返回HTTP状态码

  1. 200 OK
  2. 400 请求参数错误
  3. 401 UNAUTHORIZATION 无效的token
  4. 403 UNPERMISSION 您不具备操作的权限
  5. 404 NOT FOUND
  6. 500 服务器内部异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring 概况

网站:http://spring.io/ http://projects.spring.io/spring-framework Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止应用于企业应用。 是一个轻量级的控制反转(IoC)和面向切面&#xff…

属于python应用领域的有数据可视化_Python数据可视化

译者序前 言第1章 数据可视化概念框架11.1 数据、信息、知识和观点21.1.1 数据21.1.2 信息21.1.3 知识31.1.4 数据分析和观点31.2 数据转换41.2.1 数据转换为信息41.2.2 信息转换为知识71.2.3 知识转换为观点71.3 数据可视化历史81.4 可视化如何帮助决策101.4.1 …

JavaScript高级之构造函数和原型

1.1 概述 在典型的 OOP 的语言中(如 Java),都存在类的概念,类就是对象的模板,对象就是类的实例,但在 ES6之前, JS 中并没用引入类的概念。 ES6, 全称 ECMAScript 6.0 ,2…

wget python3_python wget

wget -nH -K -E -d -np -L -r http://flatfull.com/themes/scale/-np 递归下载时不搜索上层目录-nH, –no-host-directories 不创建主机目录-d, –debug 打印调试输出-L 递归时不进入其它主机-E //将所有text/html文档以.html扩展名保存-r 递归抓取-k 抓取之后修正链…

JavaScript高级之继承

ES6之前并没有给我们提供 extends 继承。我们可以通过构造函数原型对象模拟实现继承,被称为组合继承。 2.1 call() 调用这个函数, 并且修改函数运行时的 this 指向 fun.call(thisArg, arg1, arg2, …) thisArg :当前调用函数 this 的指向对象arg1&…

【代码笔记】iOS-UILable电子表显示

一&#xff0c;效果图。 二&#xff0c;代码。 RootViewController.h #import <UIKit/UIKit.h>interface RootViewController : UIViewController {UILabel *label;NSDateFormatter *dateFormatter ; } end RootViewController.m #import "RootViewController.h&qu…

python cpu_python 让cpu满载

python 让cpu满载发布时间&#xff1a;2018-07-29 17:25:11编辑&#xff1a;admin阅读(5939)搞zabbix监控的时候&#xff0c;linux服务器的负载很低&#xff0c;如何写一个python脚本&#xff0c;让它满载呢&#xff1f;网上搜了一堆&#xff0c;发现各种不靠谱。后来终于发现了…

JavaScript高级之ES5 中的新增方法

3.1 ES5 新增方法概述 ES5 中给我们新增了一些方法&#xff0c;可以很方便的操作数组或者字符串&#xff0c;这些方法主要包括&#xff1a; 数组方法字符串方法对象方法 3.2 数组方法 迭代(遍历)方法&#xff1a;forEach()、map()、filter()、some()、every()&#xff1b; …

extjs 事件

。。转载于:https://www.cnblogs.com/glblog/p/5732636.html

python定位二维码_图像中二维码的检测和定位

二维码二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的&#xff1b;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念&#xff0c;使用若干个与二进制相对应的几何…

JavaScript高级之函数进阶

1. 函数的定义和调用 1.1 函数的定义方式 函数声明方式 function 关键字 (命名函数)函数表达式 (匿名函数)new Function() Function 里面参数都必须是字符串格式第三种方式执行效率低&#xff0c;也不方便书写&#xff0c;因此较少使用所有函数都是 Function 的实例(对象)…

kafka Failed to send messages after 3 tries 问题解决

kafka Failed to send messages after 3 tries. 在kafka0.8开发过程中 生产者测试用例碰到了 Exception in thread "main" kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.at kafka.producer.async.DefaultEventHandler.handle(…

react 前端解析二进制流_一年半前端跳槽面试经验(头条、微信、shopee)

在2019年末的时候&#xff0c;突然想搞点大事&#xff0c;思来想去&#xff0c;感觉只有跳槽是最刺激的。由于我比较懒&#xff0c;不想换城市&#xff0c;所以这次只面试了头条、微信和 shopee。十分幸运&#xff0c;都拿到了 offer。接下来就简单的说下大家关心的面试题吧。问…

国内app快速生成平台对比

泰格老虎 2013-03-07 00:39:10 这是海恒CEO高鹏写的一篇国内app快速生成平台对比文章&#xff0c;介绍了国内快速生成APP的平台与自己平台的对比&#xff0c;很有参考价值。同类网站安米网 http://www.appbyme.org/追信 http://app.zhui.cn/简网app工厂 http://app.cutt.com/ap…

JavaScript高级之正则表达式

1. 正则表达式概述 1.1 什么是正则表达式 正则表达式&#xff08; Regular Expression &#xff09;是用于匹配字符串中字符组合的模式。在 JavaScript中&#xff0c;正则表达式也是对象。 正则表通常被用来检索、替换那些符合某个模式&#xff08;规则&#xff09;的文本&am…

pushpop指令的操作数必须是字操作数_PLC的指令,电气人必须了解的基础内容

指令语句表编程语言是所有PLC都具有的最基本的编程语言。而指令语句表程序是由一条一条的指令堆砌而成的。因此&#xff0c;我们有必要对指令进行进一步的说明和解读。1、指令格式PLC的指令语句表程序和微机汇编语言程序非常的相似&#xff0c;我们也是以汇编语言的指令和指令系…

JavaScript高级之ECMAScript 6 新特性

2.1. let关键字 let关键字用来声明变量&#xff0c;使用 let声明的变量有几个特点&#xff1a; 不允许重复声明 块儿级作用域 不存在变量提升 不影响作用域链 应用场景&#xff1a;以后声明变量使用let就对了 案例&#xff1a;点击切换颜色 <!DOCTYPE html&g…

ABAP ALV

FUNCTION ALV OO ALV转载于:https://www.cnblogs.com/xher/p/5736930.html

sql 关联使用id还是code_R语言实例:用glue批量生成SQL语句

背景在数据开发中&#xff0c;有些情况下&#xff0c;需要手动生成批量SQL&#xff0c;只需改变某个参数&#xff0c;比如日期&#xff0c;从某天到某天。之前有一个实例&#xff0c;是用 stringr::str_replace_all() 去实现&#xff0c;这次就用 glue 来做示例&#xff0c;会更…

ReactNative 告别CodePush,自建热更新版本升级环境

微软的CodePush热更新非常难用大家都知道&#xff0c;速度跟被墙了没什么区别。 另外一方面&#xff0c;我们不希望把代码放到别人的服务器。自己写接口更新总归感觉安全一点。 so&#xff0c;就来自己搞个React-Native APP的热更新管理工具吧。暂且命名为hotdog。 /**********…