simply_rugby/api.md
2025-04-11 13:29:32 +08:00

543 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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可选
- 响应: 返回包含队伍信息的分页数据