543 lines
12 KiB
Markdown
543 lines
12 KiB
Markdown
# 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(可选)
|
||
- 响应: 返回包含队伍信息的分页数据 |