羽毛球匹配项目接口交互梳理

1. 用户认证与管理模块

1.1 注册(POST /api/v1/auth/register)

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户在注册页面填写注册信息
    2. 前端发送POST请求至 /api/v1/auth/register
    3. 后端接收请求,进行数据校验
    4. 后端加密密码,存储用户信息至数据库
    5. 后端返回注册成功响应
    6. 前端显示注册成功提示,跳转至登录页面
详细流程
  1. 用户操作
    • 用户在注册页面填写用户名、密码、邮箱、电话、打球水平及兴趣标签等信息。
  1. 前端请求
    • 前端通过Vue或UniApp框架,使用Axios或其他HTTP客户端发送一个POST请求至/api/v1/auth/register,请求体包含用户填写的注册信息。
  1. 后端处理
    • 数据校验
      • 后端使用Spring Boot接收请求,首先进行数据格式和必填项校验。
      • 检查用户名、邮箱、电话是否唯一。
    • 密码加密
      • 使用bcrypt对用户密码进行加密处理。
    • 存储数据
      • 将用户信息存储到users表中,包括加密后的密码和其他相关信息。
  1. 数据库操作
    • 执行INSERT语句,将用户数据写入数据库。
  1. 后端响应
    • 注册成功后,后端返回一个成功消息及新用户的user_id
  1. 前端反馈
    • 前端接收响应后,显示注册成功提示,并引导用户跳转至登录页面。

1.2 登录(POST /api/v1/auth/login)

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户在登录页面输入用户名和密码
    2. 前端发送POST请求至 /api/v1/auth/login
    3. 后端验证用户凭证
    4. 后端生成JWT Token
    5. 后端返回Token及用户信息
    6. 前端存储Token,跳转至首页
详细流程
  1. 用户操作
    • 用户在登录页面输入用户名和密码。
  1. 前端请求
    • 前端发送一个POST请求至/api/v1/auth/login,请求体包含用户名和密码。
  1. 后端处理
    • 用户验证
      • 后端从users表中查找对应的用户名。
      • 使用bcrypt验证密码是否匹配。
    • 生成Token
      • 验证通过后,后端使用JWT生成一个Token,包含用户的基本信息和权限。
  1. 后端响应
    • 返回JWT Token及部分用户信息(如user_idusernamelevelpreferences)。
  1. 前端存储与跳转
    • 前端接收响应,将Token存储在本地(如localStorageVuex)。
    • 跳转至首页或用户主页,并根据Token设置用户的登录状态。

1.3 获取用户信息(GET /api/v1/users/{id})

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户访问个人资料页面
    2. 前端发送GET请求至 /api/v1/users/{id},携带JWT Token
    3. 后端验证Token
    4. 后端从数据库获取用户信息
    5. 后端返回用户信息
    6. 前端展示用户信息
详细流程
  1. 用户操作
    • 用户在个人中心页面查看或编辑个人信息。
  1. 前端请求
    • 前端发送一个GET请求至/api/v1/users/{id},其中{id}为当前登录用户的ID。
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
  1. 后端处理
    • Token验证
      • 使用Spring Security解析并验证JWT Token。
      • 确认Token有效且未过期。
    • 权限检查
      • 确保用户有权限访问该用户信息(通常是请求者本人或管理员)。
    • 数据查询
      • users表中查询对应用户的详细信息。
  1. 后端响应
    • 返回包含用户详细信息的JSON响应。
  1. 前端展示
    • 前端接收响应后,将用户信息展示在个人资料页面,供用户查看或编辑。

1.4 更新用户信息(PUT /api/v1/users/{id})

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户在个人资料页面编辑信息
    2. 前端发送PUT请求至 /api/v1/users/{id},携带JWT Token和更新数据
    3. 后端验证Token和权限
    4. 后端更新数据库中的用户信息
    5. 后端返回更新成功响应
    6. 前端显示更新成功提示
详细流程
  1. 用户操作
    • 用户在个人资料页面修改邮箱、电话、打球水平或兴趣标签等信息。
  1. 前端请求
    • 前端发送一个PUT请求至/api/v1/users/{id},请求体包含需要更新的字段。
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 权限检查
      • 确认用户有权限更新该用户信息。
    • 数据校验
      • 验证更新数据的格式和合法性。
      • 检查更新后的邮箱、电话是否唯一(若有更改)。
    • 数据更新
      • 更新users表中对应用户的记录。
  1. 数据库操作
    • 执行UPDATE语句,修改用户信息。
  1. 后端响应
    • 返回一个成功消息,确认用户信息已更新。
  1. 前端反馈
    • 前端接收响应后,显示更新成功提示,并刷新个人资料页面以展示最新信息。

2. 匹配服务模块

2.1 获取匹配球友(GET /api/v1/matches)

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户在匹配页面设置匹配条件
    2. 前端发送GET请求至 /api/v1/matches,携带查询参数和JWT Token
    3. 后端验证Token
    4. 后端根据条件查询匹配球友
    5. 后端返回匹配结果
    6. 前端展示匹配结果(动态卡片/盲盒)
详细流程
  1. 用户操作
    • 用户在匹配页面选择匹配条件,如区域范围、打球水平、时间段偏好,或选择随机匹配。
  1. 前端请求
    • 前端根据用户选择的条件,构建查询参数,并发送一个GET请求至/api/v1/matches
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
    • 示例URL: /api/v1/matches?distance=5&level=进阶玩家&random=true
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 参数解析与校验
      • 解析查询参数,设置默认值(如默认距离5公里)。
      • 校验参数的合法性。
    • 匹配算法执行
      • 区域定位
        • 使用用户的地理位置(存储在users表中)筛选3-5公里范围内的其他用户。
      • 打球水平筛选
        • 根据用户选择的打球水平(初学者、进阶玩家、随便挥拍)筛选匹配对象。
      • 时间段偏好
        • 根据用户的时间偏好进一步筛选。
      • 随机匹配
        • 若选择随机匹配,打乱筛选后的用户列表,随机选择一定数量的匹配对象。
      • 兴趣标签匹配
        • 根据用户的兴趣标签,优先匹配兴趣相似的用户。
      • 动态分数匹配
        • 考虑用户的评分记录,优先匹配评分较高且互评良好的用户。
  1. 数据库操作
    • 执行SELECT查询,从users表中筛选符合条件的用户。
  1. 后端响应
    • 返回一个包含匹配球友信息的JSON数组,包含每个匹配对象的基本信息及匹配类型。
  1. 前端展示
    • 前端接收响应后,通过动态卡片或盲盒形式展示匹配结果。
    • 用户可以选择接受或拒绝匹配结果。

2.2 创建匹配记录(POST /api/v1/matches)

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户接受匹配结果或发起匹配
    2. 前端发送POST请求至 /api/v1/matches,携带匹配对象ID和匹配类型
    3. 后端验证Token
    4. 后端创建匹配记录并存储至数据库
    5. 后端返回匹配成功响应
    6. 前端显示匹配成功提示,更新匹配历史
详细流程
  1. 用户操作
    • 用户在匹配页面接受某个匹配球友的匹配请求,或主动发起一个匹配请求。
  1. 前端请求
    • 前端发送一个POST请求至/api/v1/matches,请求体包含matched_user_idmatch_type
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
    • 示例请求体:
{
  "matched_user_id": 2,
  "match_type": "条件匹配"
}
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 用户存在性验证
      • 确认matched_user_id对应的用户存在且未被禁用。
    • 匹配记录创建
      • matches表中创建一条新的匹配记录,记录匹配双方的用户ID、匹配类型、状态(待确认)、创建时间等信息。
    • 通知对方用户(可选):
      • 如果需要,可以通过消息推送或其他方式通知被匹配的用户有新的匹配请求。
  1. 数据库操作
    • 执行INSERT语句,将匹配记录写入matches表。
  1. 后端响应
    • 返回一个成功消息及新创建的match_id
  1. 前端反馈
    • 前端接收响应后,显示匹配成功提示,并将新匹配记录添加到用户的匹配历史中。

2.3 获取匹配详情(GET /api/v1/matches/{match_id})

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户查看特定匹配记录的详情
    2. 前端发送GET请求至 /api/v1/matches/{match_id},携带JWT Token
    3. 后端验证Token和权限
    4. 后端查询匹配详情
    5. 后端返回匹配详情信息
    6. 前端展示匹配详情
详细流程
  1. 用户操作
    • 用户在匹配历史中点击某一匹配记录,查看详细信息。
  1. 前端请求
    • 前端发送一个GET请求至/api/v1/matches/{match_id},其中{match_id}为特定匹配记录的ID。
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 权限检查
      • 确认请求用户是匹配记录中的一方,或具有相应的查看权限。
    • 数据查询
      • matches表中查询对应的匹配记录。
      • 联合查询users表获取匹配双方的详细信息。
  1. 数据库操作
    • 执行SELECT语句,查询matches和相关的users信息。
  1. 后端响应
    • 返回包含匹配详情的JSON对象,包括匹配双方的用户信息、匹配类型、状态、创建和更新时间等。
  1. 前端展示
    • 前端接收响应后,将匹配详情展示在匹配详情页面,包括双方的个人信息、匹配记录状态等。

3. 聊天服务模块

3.1 发送消息(POST /api/v1/messages)

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot) --> 数据库 (MySQL)
    1. 用户在聊天页面发送消息
    2. 前端发送POST请求至 /api/v1/messages,携带消息内容和匹配ID
    3. 后端验证Token和匹配关系
    4. 后端存储消息至数据库
    5. 后端通过WebSocket推送消息给接收者
    6. 后端返回消息发送成功响应
    7. 前端显示已发送的消息
详细流程
  1. 用户操作
    • 用户在聊天页面输入消息内容,并点击发送按钮。
  1. 前端请求
    • 前端发送一个POST请求至/api/v1/messages,请求体包含match_idreceiver_idmessage内容。
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
    • 示例请求体:
{
  "match_id": 1001,
  "receiver_id": 2,
  "message": "你好,约个时间打球吧!"
}
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 匹配关系验证
      • 确认当前用户与receiver_id之间存在有效的匹配记录(状态为已确认)。
    • 消息存储
      • 将消息内容存储到messages表中,记录发送者、接收者、消息内容和时间戳。
    • 实时推送
      • 通过WebSocket将新消息推送给接收者,确保消息即时到达。
  1. 数据库操作
    • 执行INSERT语句,将消息记录写入messages表。
  1. 后端响应
    • 返回一个成功消息及消息的时间戳。
  1. 前端反馈
    • 前端接收响应后,将已发送的消息显示在聊天界面,并清空输入框。

3.2 获取聊天记录(GET /api/v1/messages/{match_id})

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户进入聊天页面,需加载历史消息
    2. 前端发送GET请求至 /api/v1/messages/{match_id},携带JWT Token
    3. 后端验证Token和匹配关系
    4. 后端查询数据库获取聊天记录
    5. 后端返回聊天记录
    6. 前端展示聊天历史
详细流程
  1. 用户操作
    • 用户在聊天页面打开与某个匹配球友的聊天窗口,需要加载之前的聊天记录。
  1. 前端请求
    • 前端发送一个GET请求至/api/v1/messages/{match_id},其中{match_id}为当前聊天的匹配记录ID。
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 匹配关系验证
      • 确认请求用户与匹配记录ID对应的用户之间存在有效的匹配关系。
    • 数据查询
      • messages表中查询对应match_id的所有聊天记录,按时间排序。
  1. 数据库操作
    • 执行SELECT语句,获取所有相关的消息记录。
  1. 后端响应
    • 返回一个包含聊天记录的JSON数组,每条消息包括发送者ID、接收者ID、消息内容和时间戳。
  1. 前端展示
    • 前端接收响应后,将聊天记录按时间顺序展示在聊天界面,供用户查看历史对话。

4. 评分与评价模块

4.1 提交评分(POST /api/v1/ratings)

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot) --> 数据库 (MySQL)
    1. 用户在匹配完成后提交评分
    2. 前端发送POST请求至 /api/v1/ratings,携带评分信息
    3. 后端验证Token和匹配关系
    4. 后端存储评分信息至数据库
    5. 后端更新被评分用户的评分数据
    6. 后端返回评分成功响应
    7. 前端显示评分成功提示
详细流程
  1. 用户操作
    • 用户在打球后,在应用内提交对匹配球友的评分和评价。
  1. 前端请求
    • 前端发送一个POST请求至/api/v1/ratings,请求体包含match_idratee_idscorecomment
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
    • 示例请求体:
{
  "match_id": 1001,
  "ratee_id": 2,
  "score": 5,
  "comment": "打球非常愉快,技术不错!"
}
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 匹配关系验证
      • 确认用户与ratee_id之间存在已完成的匹配记录。
    • 评分数据校验
      • 验证评分分数的范围(1-5)。
      • 确认同一匹配记录下用户只能评分一次。
    • 存储评分信息
      • 将评分信息存储到ratings表中,包括评分者ID、被评分者ID、分数、评论和时间戳。
    • 更新用户评分
      • 计算被评分用户的平均评分,并更新users表中的评分相关字段(如average_rating)。
  1. 数据库操作
    • 执行INSERT语句,将评分记录写入ratings表。
    • 执行UPDATE语句,更新被评分用户的评分数据。
  1. 后端响应
    • 返回一个成功消息,确认评分已提交。
  1. 前端反馈
    • 前端接收响应后,显示评分成功提示,并可能更新被评分用户的评分显示。

4.2 获取评分详情(GET /api/v1/ratings/{match_id})

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户查看特定匹配记录的评分详情
    2. 前端发送GET请求至 /api/v1/ratings/{match_id},携带JWT Token
    3. 后端验证Token和匹配关系
    4. 后端查询数据库获取评分详情
    5. 后端返回评分详情信息
    6. 前端展示评分详情
详细流程
  1. 用户操作
    • 用户在匹配详情页面查看双方的评分和评价。
  1. 前端请求
    • 前端发送一个GET请求至/api/v1/ratings/{match_id},其中{match_id}为特定匹配记录的ID。
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 匹配关系验证
      • 确认请求用户与匹配记录ID对应的用户之间存在有效的匹配关系。
    • 数据查询
      • ratings表中查询对应match_id的所有评分记录。
  1. 数据库操作
    • 执行SELECT语句,获取所有相关的评分记录。
  1. 后端响应
    • 返回一个包含评分详情的JSON数组,每条评分记录包括评分者ID、被评分者ID、分数、评论和时间戳。
  1. 前端展示
    • 前端接收响应后,将评分详情展示在匹配详情页面,供用户查看双方的评分和评价。

5. 优惠券与奖励模块

5.1 获取用户优惠券(GET /api/v1/coupons)

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户在优惠券页面查看可用优惠券
    2. 前端发送GET请求至 /api/v1/coupons,携带JWT Token
    3. 后端验证Token
    4. 后端查询数据库获取用户优惠券
    5. 后端返回优惠券信息
    6. 前端展示优惠券列表
详细流程
  1. 用户操作
    • 用户在应用内进入优惠券页面,查看可用的优惠券。
  1. 前端请求
    • 前端发送一个GET请求至/api/v1/coupons
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 数据查询
      • coupons表中查询当前用户的所有优惠券,筛选出未使用且未过期的优惠券。
  1. 数据库操作
    • 执行SELECT语句,获取用户的优惠券数据。
  1. 后端响应
    • 返回一个包含优惠券信息的JSON数组,每张优惠券包括ID、代码、类型、折扣金额、使用状态和过期时间。
  1. 前端展示
    • 前端接收响应后,将优惠券列表展示在优惠券页面,供用户查看和使用。

5.2 领取优惠券(POST /api/v1/coupons/claim)

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot) --> 数据库 (MySQL)
    1. 用户点击领取某张优惠券
    2. 前端发送POST请求至 /api/v1/coupons/claim,携带优惠券ID
    3. 后端验证Token和优惠券有效性
    4. 后端更新优惠券状态为已领取
    5. 后端返回领取成功响应及优惠券码
    6. 前端显示领取成功提示,并更新优惠券列表
详细流程
  1. 用户操作
    • 用户在优惠券页面点击“领取”按钮,选择领取某张优惠券。
  1. 前端请求
    • 前端发送一个POST请求至/api/v1/coupons/claim,请求体包含coupon_id
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
    • 示例请求体:
{
  "coupon_id": 5001
}
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 优惠券有效性验证
      • 查询coupons表,确认优惠券ID存在且属于当前用户。
      • 检查优惠券是否已被领取或已过期。
    • 更新优惠券状态
      • 将优惠券的is_used字段更新为true,并记录领取时间。
    • 生成优惠券码(若未生成):
      • 若优惠券码尚未生成,后端生成唯一的优惠券码,并存储在code字段中。
  1. 数据库操作
    • 执行UPDATE语句,更新优惠券状态及生成优惠券码。
  1. 后端响应
    • 返回一个成功消息及优惠券码。
  1. 前端反馈
    • 前端接收响应后,显示领取成功提示,并在优惠券列表中更新该优惠券的状态为已领取。

6. 积分管理模块

6.1 获取用户积分(GET /api/v1/points)

交互时序图
前端 (Vue + UniApp) --> 后端 (Spring Boot)
    1. 用户在积分页面查看当前积分及积分历史
    2. 前端发送GET请求至 /api/v1/points,携带JWT Token
    3. 后端验证Token
    4. 后端查询数据库获取用户积分信息
    5. 后端返回积分数据
    6. 前端展示积分和积分历史
详细流程
  1. 用户操作
    • 用户在积分页面查看自己的当前积分及积分获取和使用历史。
  1. 前端请求
    • 前端发送一个GET请求至/api/v1/points
    • 请求头中包含Authorization: Bearer <JWT_TOKEN>
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 数据查询
      • points表中查询当前用户的积分总数及积分历史记录。
  1. 数据库操作
    • 执行SELECT语句,获取用户的积分总数和历史记录。
  1. 后端响应
    • 返回一个包含积分总数和积分历史的JSON对象。
  1. 前端展示
    • 前端接收响应后,将当前积分展示在积分页面,并以列表形式展示积分历史记录。

7. 管理后台模块(可选)

7.1 获取所有用户(GET /api/v1/admin/users)

交互时序图
前端 (管理后台界面) --> 后端 (Spring Boot)
    1. 管理员在后台管理页面请求用户列表
    2. 前端发送GET请求至 /api/v1/admin/users,携带管理员JWT Token
    3. 后端验证Token及管理员权限
    4. 后端查询数据库获取所有用户信息
    5. 后端返回用户列表
    6. 前端展示用户列表
详细流程
  1. 管理员操作
    • 管理员在管理后台界面点击“用户管理”查看所有注册用户。
  1. 前端请求
    • 前端发送一个GET请求至/api/v1/admin/users
    • 请求头中包含Authorization: Bearer <ADMIN_JWT_TOKEN>
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 权限检查
      • 确认当前用户拥有管理员权限。
    • 数据查询
      • users表中查询所有用户的基本信息。
  1. 数据库操作
    • 执行SELECT语句,获取所有用户的数据。
  1. 后端响应
    • 返回一个包含所有用户信息的JSON数组。
  1. 前端展示
    • 前端接收响应后,将用户列表展示在管理后台的用户管理页面,供管理员查看和管理。

7.2 统计报表(GET /api/v1/admin/statistics)

交互时序图
前端 (管理后台界面) --> 后端 (Spring Boot)
    1. 管理员在后台管理页面请求统计数据
    2. 前端发送GET请求至 /api/v1/admin/statistics,携带管理员JWT Token
    3. 后端验证Token及管理员权限
    4. 后端汇总统计数据
    5. 后端返回统计报表
    6. 前端展示统计报表
详细流程
  1. 管理员操作
    • 管理员在管理后台界面点击“统计报表”查看平台的各项统计数据。
  1. 前端请求
    • 前端发送一个GET请求至/api/v1/admin/statistics
    • 请求头中包含Authorization: Bearer <ADMIN_JWT_TOKEN>
  1. 后端处理
    • Token验证
      • 验证JWT Token的有效性。
    • 权限检查
      • 确认当前用户拥有管理员权限。
    • 数据汇总
      • usersmatchesratings等表中汇总所需的统计数据,如总用户数、总匹配数、活跃用户数、平均评分等。
  1. 数据库操作
    • 执行多个SELECT语句,或使用聚合函数(如COUNTAVG)获取统计数据。
  1. 后端响应
    • 返回一个包含各项统计数据的JSON对象。
  1. 前端展示
    • 前端接收响应后,将统计数据以图表或数据卡片形式展示在管理后台的统计报表页面,供管理员分析平台运营情况。

8. API 安全性与错误处理

8.1 认证与授权

  • JWT(JSON Web Token)
    • 所有需要身份验证的API请求必须携带有效的JWT Token。
    • Token包含用户ID和角色信息(普通用户或管理员)。
    • 后端使用Spring Security进行Token的解析和验证。
  • 权限控制
    • 基于用户角色(普通用户、管理员)控制API的访问权限。
    • 普通用户只能访问自己的数据,管理员拥有更高权限访问所有数据。

8.2 输入验证

  • 数据校验
    • 后端对所有API的输入参数进行严格的格式和内容校验,使用Hibernate Validator或自定义验证注解。
    • 防止SQL注入、跨站脚本(XSS)等攻击。
  • 错误响应
    • 对于验证失败或权限不足的请求,后端返回适当的错误码和错误信息(如400 Bad Request, 401 Unauthorized, 403 Forbidden)。

8.3 加密与传输

  • 密码加密
    • 使用bcrypt算法对用户密码进行哈希加密,确保密码安全存储。
  • HTTPS
    • 所有API通信通过HTTPS协议进行,加密传输数据,防止中间人攻击。

8.4 防护措施

  • API速率限制
    • 对关键API(如登录、注册)设置请求频率限制,防止暴力破解和DDoS攻击。
  • CSRF防护
    • 使用CSRF Token机制,防止跨站请求伪造攻击。
  • 日志与监控
    • 记录所有API请求和异常日志,使用监控工具(如ELK Stack)实时监控系统状态,及时发现和响应异常行为。

8.5 错误处理示例

注册失败示例
  • 原因:用户名已存在
  • 后端响应
{
  "error": "用户名已存在,请选择其他用户名。"
}
  • HTTP 状态码:400 Bad Request
未授权访问示例
  • 原因:缺少或无效的Token
  • 后端响应
{
  "error": "未授权的访问,请重新登录。"
}
  • HTTP 状态码:401 Unauthorized
权限不足示例
  • 原因:普通用户尝试访问管理员API
  • 后端响应
{
  "error": "您没有权限执行此操作。"
}
  • HTTP 状态码:403 Forbidden

9. 前后端交互流程示例

9.1 用户注册与登录流程

  1. 注册
    • 用户在前端填写注册信息并提交。
    • 前端发送POST /api/v1/auth/register请求。
    • 后端处理注册,存储用户信息,返回成功响应。
    • 前端提示注册成功,引导用户登录。
  1. 登录
    • 用户在前端输入用户名和密码并提交。
    • 前端发送POST /api/v1/auth/login请求。
    • 后端验证凭证,生成JWT Token,返回用户信息和Token。
    • 前端存储Token,设置用户登录状态,跳转至首页。

9.2 匹配与聊天流程

  1. 匹配
    • 用户在匹配页面设置条件并请求匹配。
    • 前端发送GET /api/v1/matches请求。
    • 后端执行匹配算法,返回匹配结果。
    • 前端展示匹配结果,用户选择接受匹配。
  1. 创建匹配记录
    • 用户接受匹配,前端发送POST /api/v1/matches请求。
    • 后端创建匹配记录,返回成功响应。
    • 前端更新匹配历史,进入聊天页面。
  1. 聊天
    • 用户在聊天页面发送消息,前端发送POST /api/v1/messages请求。
    • 后端存储消息并通过WebSocket推送给接收者。
    • 接收者前端通过WebSocket接收并展示新消息。

9.3 提交评分流程

  1. 评分
    • 用户在匹配完成后进入评分页面,提交对匹配球友的评分和评论。
    • 前端发送POST /api/v1/ratings请求。
    • 后端存储评分信息,更新被评分用户的评分数据,返回成功响应。
    • 前端显示评分成功提示,更新用户评分展示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值