# API文档 ## 基础信息 - 响应格式: 所有接口都会返回统一的`Result`格式 ```json { "code": 200, // 状态码 "msg": "", // 错误信息 "data": {} // 具体响应数据 } ``` ## 成员管理 基础路径: `/api/members` ### 1. 创建成员 - 请求方式: `POST` - 请求路径: `/api/members` - 请求体: `Member`对象 ```json { "userName": "用户名", "avatar": "头像URL", "password": "密码", "salt": "密码盐值", "name": "姓名", "address": "地址", "postcode": "邮编", "sruNumber": "SRU编号", "dateOfBirth": "1990-01-01", "telNumber": "固定电话", "mobileNumber": "手机号码", "email": "电子邮箱" } ``` - 响应: 成功返回空数据 ### 2. 删除成员 - 请求方式: `DELETE` - 请求路径: `/api/members/{id}` - 路径参数: `id` - 成员ID - 响应: 成功返回空数据 ### 3. 更新成员 - 请求方式: `PUT` - 请求路径: `/api/members` - 请求体: `Member`对象 - 响应: 成功返回空数据 ### 4. 获取单个成员 - 请求方式: `GET` - 请求路径: `/api/members/{id}` - 路径参数: `id` - 成员ID - 响应: 返回成员详细信息 ### 5. 分页获取成员列表 - 请求方式: `GET` - 请求路径: `/api/members/page` - 请求参数: - `pageNum`: 页码(默认1) - `pageSize`: 每页大小(默认10) - 响应: 返回分页数据 ### 6. 获取随机成员 - 请求方式: `GET` - 请求路径: `/api/members/random` - 响应: 返回4个随机成员的详细信息 ```json { "code": 200, "msg": "", "data": [ { "avatar": "头像URL", "name": "成员姓名", "dateOfBirth": "1990-01-01", "role": "角色名称", "sruNumber": "SRU编号", "email": "电子邮箱" } ] } ``` ## 球员管理 基础路径: `/api/players` ### 1. 创建球员 - 请求方式: `POST` - 请求路径: `/api/players` - 请求体: `Player`对象 ```json { "memberId": "成员ID", "teamId": "团队ID", "position": "位置", "teamNumber": "队内编号", "height": 180, "weight": 75, "guardian1Name": "监护人1姓名", "guardian1Relationship": "与监护人1关系", "guardian1Address": "监护人1地址", "guardian1Tel": "监护人1电话", "guardian2Name": "监护人2姓名", "guardian2Relationship": "与监护人2关系", "guardian2Address": "监护人2地址", "guardian2Tel": "监护人2电话", "doctorName": "医生姓名", "doctorTel": "医生电话", "doctorAddress": "医生地址", "knownHealthIssues": "已知健康问题" } ``` - 响应: 成功返回空数据 ### 2. 删除球员 - 请求方式: `DELETE` - 请求路径: `/api/players/{id}` - 路径参数: `id` - 球员ID - 响应: 成功返回空数据 ### 3. 更新球员 - 请求方式: `PUT` - 请求路径: `/api/players` - 请求体: `Player`对象 - 响应: 成功返回空数据 ### 4. 获取单个球员 - 请求方式: `GET` - 请求路径: `/api/players/{id}` - 路径参数: `id` - 球员ID - 响应: 返回球员详细信息 ### 5. 分页获取球员列表 - 请求方式: `GET` - 请求路径: `/api/players/page` - 请求参数: - `pageNum`: 页码(默认1) - `pageSize`: 每页大小(默认10) - 响应: 返回分页数据,包含以下字段: ```json { "code": 200, "msg": "", "data": { "records": [ { "id": "球员ID", "position": "位置", "teamNumber": "队内编号", "height": 180, "weight": 75, "createTime": "2024-04-10T16:30:00", "name": "姓名", "avatar": "头像URL", "sruNumber": "SRU编号", "dateOfBirth": "1990-01-01", "email": "电子邮箱", "telNumber": "固定电话", "mobileNumber": "手机号码", "guardian1Name": "监护人1姓名", "guardian1Tel": "监护人1电话", "guardian2Name": "监护人2姓名", "guardian2Tel": "监护人2电话", "doctorName": "医生姓名", "doctorTel": "医生电话", "knownHealthIssues": "已知健康问题", "teamName": "队伍名称" } ], "total": 100, "size": 10, "current": 1 } } ``` ### 6. 按团队分页获取球员列表 - 请求方式: `GET` - 请求路径: `/api/players/page/team/{teamId}` - 路径参数: `teamId` - 团队ID - 请求参数: - `pageNum`: 页码(默认1) - `pageSize`: 每页大小(默认10) - 响应: 返回分页数据 ### 7. 获取随机球员 - 请求方式: `GET` - 请求路径: `/api/players/random` - 响应: 返回3个随机球员的详细信息 ```json { "code": 200, "msg": "", "data": [ { "name": "球员姓名", "avatar": "头像URL", "teamName": "队伍名称", "position": "位置", "teamNumber": "队内编号", "height": 180, "weight": 75, "createTime": "2024-04-10T16:30:00", "passingStandard": 5, "passingSpin": 5, "passingPop": 5, "tacklingFront": 5, "tacklingRear": 5, "tacklingSide": 5, "tacklingScrabble": 5, "kickingDrop": 5, "kickingPunt": 5, "kickingGrubber": 5, "kickingGoal": 5 } ] } ``` ## 球员技能档案管理 基础路径: `/api/player-skills` ### 1. 创建技能档案 - 请求方式: `POST` - 请求路径: `/api/player-skills` - 请求体: `PlayerSkillProfile`对象 ```json { "playerId": "球员ID", "passingStandard": 5, "passingStandardComment": "标准传球评价", "passingSpin": 5, "passingSpinComment": "旋转传球评价", "passingPop": 5, "passingPopComment": "快速传球评价", "tacklingFront": 5, "tacklingFrontComment": "正面铲球评价", "tacklingRear": 5, "tacklingRearComment": "背后铲球评价", "tacklingSide": 5, "tacklingSideComment": "侧面铲球评价", "tacklingScrabble": 5, "tacklingScrabbleComment": "争抢铲球评价", "kickingDrop": 5, "kickingDropComment": "落地踢球评价", "kickingPunt": 5, "kickingPuntComment": "踢远球评价", "kickingGrubber": 5, "kickingGrubberComment": "滚地踢球评价", "kickingGoal": 5, "kickingGoalComment": "射门评价" } ``` - 响应: 成功返回空数据 ### 2. 删除技能档案 - 请求方式: `DELETE` - 请求路径: `/api/player-skills/{id}` - 路径参数: `id` - 技能档案ID - 响应: 成功返回空数据 ### 3. 更新技能档案 - 请求方式: `PUT` - 请求路径: `/api/player-skills` - 请求体: `PlayerSkillProfile`对象 - 响应: 成功返回空数据 ### 4. 获取单个技能档案 - 请求方式: `GET` - 请求路径: `/api/player-skills/{id}` - 路径参数: `id` - 技能档案ID - 响应: 返回技能档案详细信息 ### 5. 获取球员的技能档案 - 请求方式: `GET` - 请求路径: `/api/player-skills/player/{playerId}` - 路径参数: `playerId` - 球员ID - 响应: 返回技能档案详细信息 ### 6. 分页获取技能档案列表 - 请求方式: `GET` - 请求路径: `/api/player-skills/page` - 请求参数: - `pageNum`: 页码(默认1) - `pageSize`: 每页大小(默认10) - 响应: 返回分页数据 ## 公告管理 基础路径: `/api/announcements` ### 1. 创建公告 - 请求方式: `POST` - 请求路径: `/api/announcements` - 请求体: `Announcement`对象 ```json { "title": "公告标题", "content": "公告内容", "time": "2024-03-21T10:00:00" } ``` - 响应: ```json { "code": 200, "msg": "", "data": null } ``` ### 2. 删除公告 - 请求方式: `DELETE` - 请求路径: `/api/announcements/{id}` - 路径参数: `id` - 公告ID - 响应: ```json { "code": 200, "msg": "", "data": null } ``` ### 3. 更新公告 - 请求方式: `PUT` - 请求路径: `/api/announcements` - 请求体: `Announcement`对象 ```json { "id": "公告ID", "title": "公告标题", "content": "公告内容", "time": "2024-03-21T10:00:00" } ``` - 响应: ```json { "code": 200, "msg": "", "data": null } ``` ### 4. 获取单个公告 - 请求方式: `GET` - 请求路径: `/api/announcements/{id}` - 路径参数: `id` - 公告ID - 响应: ```json { "code": 200, "msg": "", "data": { "id": "公告ID", "title": "公告标题", "content": "公告内容", "time": "2024-03-21T10:00:00" } } ``` ### 5. 获取最新公告 - 请求方式: `GET` - 请求路径: `/api/announcements/latest` - 响应: ```json { "code": 200, "msg": "", "data": { "id": "公告ID", "title": "公告标题", "content": "公告内容", "time": "2024-03-21T10:00:00" } } ``` ## 广告模块 ### 1. 创建广告 - 请求方式: `POST` - 请求路径: `/ad` - 请求体: ```json { "title": "广告标题", "img": "图片URL", "sort": 1 // 排序序号 } ``` - 响应: ```json { "code": 200, "msg": "", "data": null } ``` ### 2. 修改广告 - 请求方式: `PUT` - 请求路径: `/ad` - 请求体: ```json { "id": "广告ID", "title": "广告标题", "img": "图片URL", "sort": 1 } ``` - 响应: ```json { "code": 200, "msg": "", "data": null } ``` ### 3. 删除广告 - 请求方式: `DELETE` - 请求路径: `/ad/{id}` - 路径参数: `id` - 广告ID - 响应: ```json { "code": 200, "msg": "", "data": null } ``` ### 4. 获取单个广告 - 请求方式: `GET` - 请求路径: `/ad/{id}` - 路径参数: `id` - 广告ID - 响应: ```json { "code": 200, "msg": "", "data": { "id": "广告ID", "title": "广告标题", "img": "图片URL", "sort": 1 } } ``` ### 5. 获取广告列表 - 请求方式: `GET` - 请求路径: `/ad` - 响应: ```json { "code": 200, "msg": "", "data": [ { "id": "广告ID", "title": "广告标题", "img": "图片URL", "sort": 1 } ] } ``` ## 队伍模块 基础路径: `/api/teams` ### 1. 创建队伍 - 请求方式: `POST` - 请求路径: `/api/teams` - 请求体: `Team`对象 - 响应: 成功返回空数据 ### 2. 删除队伍 - 请求方式: `DELETE` - 请求路径: `/api/teams/{id}` - 路径参数: `id` - 队伍ID - 响应: 成功返回空数据 ### 3. 更新队伍 - 请求方式: `PUT` - 请求路径: `/api/teams` - 请求体: `Team`对象 - 响应: 成功返回空数据 ### 4. 获取单个队伍 - 请求方式: `GET` - 请求路径: `/api/teams/{id}` - 路径参数: `id` - 队伍ID - 响应: 返回队伍详细信息 ### 5. 分页获取队伍列表 - 请求方式: `GET` - 请求路径: `/api/teams/page` - 请求参数: - `pageNum`: 页码(默认1) - `pageSize`: 每页大小(默认10) - 响应: 返回分页数据 ## 比赛模块 基础路径: `/api/matches` ### 1. 创建比赛 - 请求方式: `POST` - 请求路径: `/api/matches` - 请求体: `Match`对象 - 响应: 成功返回空数据 ### 2. 删除比赛 - 请求方式: `DELETE` - 请求路径: `/api/matches/{id}` - 路径参数: `id` - 比赛ID - 响应: 成功返回空数据 ### 3. 更新比赛 - 请求方式: `PUT` - 请求路径: `/api/matches` - 请求体: `Match`对象 - 响应: 成功返回空数据 ### 4. 获取单个比赛 - 请求方式: `GET` - 请求路径: `/api/matches/{id}` - 路径参数: `id` - 比赛ID - 响应: 返回包含队伍信息的比赛详细信息 ### 5. 分页获取比赛列表 - 请求方式: `GET` - 请求路径: `/api/matches/page` - 请求参数: - `pageNum`: 页码(默认1) - `pageSize`: 每页大小(默认10) - `teamId`: 队伍ID(可选) - 响应: 返回包含队伍信息的分页数据