Files
game_server/积分余额接口文档.md

155 lines
3.4 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.

# 用户积分余额接口文档
## 接口概述
获取当前登录用户的积分余额信息通过JWT token自动识别用户身份。
---
## 接口详情
### 基本信息
- **接口路径**: `/api/admin/accounts/me/points-balance`
- **请求方法**: `GET`
- **接口描述**: 根据token解析用户ID并获取当前用户的积分余额
- **认证方式**: JWT Bearer Token
---
## 请求参数
### Headers
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| Authorization | string | 是 | Bearer {token}JWT认证令牌 |
### 请求示例
```http
GET /api/admin/accounts/me/points-balance HTTP/1.1
Host: localhost:8080
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
```
---
## 响应结果
### 成功响应 (200 OK)
```json
{
"userId": 12345,
"username": "agent001",
"userType": "AGENT",
"pointsBalance": 15000
}
```
### 响应字段说明
| 字段名 | 类型 | 说明 |
|--------|------|------|
| userId | Long | 用户ID |
| username | String | 用户名 |
| userType | String | 用户类型ADMIN管理员或 AGENT代理 |
| pointsBalance | Long | 积分余额(单位:积分点数) |
---
## 错误响应
### 401 未授权
```json
{
"error": "Unauthorized",
"message": "Authorization header is required"
}
```
### 400 请求错误
```json
{
"error": "Bad Request",
"message": "Invalid token: userId not found"
}
```
### 404 用户不存在
```json
{
"error": "Not Found",
"message": "用户不存在"
}
```
---
## 调用示例
### JavaScript (fetch)
```javascript
const token = 'your-jwt-token-here';
fetch('/api/admin/accounts/me/points-balance', {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => {
console.log('用户积分余额:', data.pointsBalance);
console.log('用户信息:', data);
})
.catch(error => {
console.error('获取积分余额失败:', error);
});
```
### curl
```bash
curl -X GET "http://localhost:8080/api/admin/accounts/me/points-balance" \
-H "Authorization: Bearer your-jwt-token-here" \
-H "Content-Type: application/json"
```
### Java (Spring WebFlux)
```java
WebClient webClient = WebClient.create("http://localhost:8080");
Mono<PointsBalanceResponse> response = webClient
.get()
.uri("/api/admin/accounts/me/points-balance")
.header("Authorization", "Bearer " + jwtToken)
.retrieve()
.bodyToMono(PointsBalanceResponse.class);
response.subscribe(
pointsBalance -> System.out.println("积分余额: " + pointsBalance.getPointsBalance()),
error -> System.err.println("请求失败: " + error.getMessage())
);
```
---
## 注意事项
1. **Token有效性**: JWT token必须有效且未过期
2. **用户类型**:
- ADMIN用户的积分余额通常为0
- AGENT用户才有实际的积分余额
3. **权限控制**: 只能查询当前登录用户自己的积分余额
4. **数据格式**: 积分余额以长整型返回,单位为积分点数
---
## 状态码说明
| 状态码 | 说明 |
|--------|------|
| 200 | 请求成功,返回积分余额信息 |
| 400 | 请求参数错误或token无效 |
| 401 | 未提供认证信息或认证失败 |
| 404 | 用户不存在 |
| 500 | 服务器内部错误 |