109 lines
3.4 KiB
Markdown
109 lines
3.4 KiB
Markdown
# API 快速测试指南
|
||
|
||
本文档包含最新调整的 API 接口的 curl 测试命令。
|
||
|
||
## 前置准备
|
||
|
||
```bash
|
||
# 1. 登录获取 JWT Token
|
||
TOKEN=$(curl -s -X POST http://localhost:8080/api/v1/auth/login \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"mobile":"13800138000","password":"password123"}' \
|
||
| jq -r '.data.access_token')
|
||
|
||
echo "Token: $TOKEN"
|
||
```
|
||
|
||
## 新增/变更的接口
|
||
|
||
### 1. 获取用户完整信息(Login 格式)
|
||
|
||
```bash
|
||
curl -X GET http://localhost:8080/api/v1/auth/user \
|
||
-H "Authorization: Bearer $TOKEN"
|
||
```
|
||
|
||
### 2. OSS 单个文件预签名 URL(已调整)
|
||
|
||
```bash
|
||
# 获取头像预签名 URL
|
||
curl -X GET "http://localhost:8080/api/v1/assets/oss/presigned-url?type=avatar&file_name=test.jpg&expires=3600" \
|
||
-H "Authorization: Bearer $TOKEN"
|
||
|
||
# 获取资产预签名 URL
|
||
curl -X GET "http://localhost:8080/api/v1/assets/oss/presigned-url?type=asset&file_name=cover.png&expires=3600" \
|
||
-H "Authorization: Bearer $TOKEN"
|
||
```
|
||
|
||
### 3. OSS 批量获取预签名 URL(已调整)
|
||
|
||
```bash
|
||
# 批量获取头像图片
|
||
curl -X GET "http://localhost:8080/api/v1/assets/oss/batch-presigned-urls?type=avatar&expires=3600&max_keys=50" \
|
||
-H "Authorization: Bearer $TOKEN"
|
||
|
||
# 批量获取资产图片
|
||
curl -X GET "http://localhost:8080/api/v1/assets/oss/batch-presigned-urls?type=asset&expires=3600&max_keys=50" \
|
||
-H "Authorization: Bearer $TOKEN"
|
||
```
|
||
|
||
## 参数说明
|
||
|
||
### OSS 预签名接口参数变更
|
||
|
||
**旧接口(已废弃):**
|
||
- 需要传入完整的 OSS URL:`file_url=https://bucket.oss-region.aliyuncs.com/path/file.jpg`
|
||
|
||
**新接口:**
|
||
- 单个文件:`type=avatar|asset` + `file_name=文件名`
|
||
- 批量文件:`type=avatar|asset`
|
||
- 自动从 JWT Token 中获取 `user_id` 和 `star_id`
|
||
- 文件路径自动构建为:`{type}/{user_id}/{star_id}/{file_name}`
|
||
|
||
### Auth 接口说明
|
||
|
||
**两个用户信息接口的区别:**
|
||
|
||
| 接口 | 路径 | 返回格式 | 用途 |
|
||
|------|------|----------|------|
|
||
| GetCurrentUser | `/api/v1/auth/me` | GetMeResponseDTO | 获取基本用户信息 |
|
||
| GetAuthMe | `/api/v1/auth/user` | LoginResponseDTO | 获取完整用户信息(同登录接口) |
|
||
|
||
## 完整测试流程
|
||
|
||
```bash
|
||
#!/bin/bash
|
||
|
||
# 1. 登录
|
||
echo "=== 1. 登录 ==="
|
||
TOKEN=$(curl -s -X POST http://localhost:8080/api/v1/auth/login \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"mobile":"13800138000","password":"password123"}' \
|
||
| jq -r '.data.access_token')
|
||
|
||
echo "Token: ${TOKEN:0:20}..."
|
||
|
||
# 2. 获取用户完整信息
|
||
echo -e "\n=== 2. 获取用户完整信息 ==="
|
||
curl -s -X GET http://localhost:8080/api/v1/auth/user \
|
||
-H "Authorization: Bearer $TOKEN" | jq '.'
|
||
|
||
# 3. 获取单个文件预签名 URL
|
||
echo -e "\n=== 3. 获取头像预签名 URL ==="
|
||
curl -s -X GET "http://localhost:8080/api/v1/assets/oss/presigned-url?type=avatar&file_name=test.jpg&expires=3600" \
|
||
-H "Authorization: Bearer $TOKEN" | jq '.data.url'
|
||
|
||
# 4. 批量获取预签名 URL
|
||
echo -e "\n=== 4. 批量获取头像图片 ==="
|
||
curl -s -X GET "http://localhost:8080/api/v1/assets/oss/batch-presigned-urls?type=avatar&expires=3600&max_keys=10" \
|
||
-H "Authorization: Bearer $TOKEN" | jq '.data.count'
|
||
|
||
echo -e "\n=== 测试完成 ==="
|
||
```
|
||
|
||
## 主要变更总结
|
||
|
||
1. **安全性增强**:OSS 路径不再由前端传入,自动从 JWT 提取用户信息构建,防止越权访问
|
||
2. **简化调用**:前端无需拼接完整 OSS URL,只需传入 `type` 和 `file_name`
|
||
3. **新增接口**:`GET /api/v1/auth/user` 返回与登录接口相同格式的完整用户信息
|