10 KiB
牛只数据管理 API 测试文档
服务器信息
- 服务器地址: 119.45.30.82
- 端口: 12240
- 基础URL:
http://119.45.30.82:12240 - API基础路径:
/api/cattle-data
1. 检查服务是否正常运行
方法1: 浏览器访问
http://119.45.30.82:12240/swagger-ui.html
如果能看到 Swagger UI 界面,说明服务正常运行。
方法2: 使用 curl 命令
curl http://119.45.30.82:12240/api/cattle-data
方法3: 检查服务状态(在服务器上)
# 检查端口是否监听
netstat -tlnp | grep 8080
# 或使用 ss 命令
ss -tlnp | grep 8080
# 检查进程
ps aux | grep cattletends
2. API 接口测试
2.1 获取所有牛只数据
接口: GET /api/cattle-data
测试方法1: 浏览器直接访问
http://119.45.30.82:12240/api/cattle-data
测试方法2: 使用 curl
curl -X GET "http://119.45.30.82:12240/api/cattle-data"
测试方法3: 使用 Postman
- Method: GET
- URL:
http://119.45.30.82:12240/api/cattle-data
2.2 按省份筛选数据
接口: GET /api/cattle-data?province=安徽省
测试方法1: 浏览器
http://119.45.30.82:12240/api/cattle-data?province=安徽省
测试方法2: curl
curl -X GET "http://119.45.30.82:12240/api/cattle-data?province=安徽省"
2.3 按品种筛选数据
接口: GET /api/cattle-data?type=鲁西牛
测试方法1: 浏览器
http://119.45.30.82:12240/api/cattle-data?type=鲁西牛
测试方法2: curl
curl -X GET "http://119.45.30.82:12240/api/cattle-data?type=鲁西牛"
2.4 根据ID获取单条数据
接口: GET /api/cattle-data/{id}
示例: 获取ID为1的数据
测试方法1: 浏览器
http://119.45.30.82:12240/api/cattle-data/1
测试方法2: curl
curl -X GET "http://119.45.30.82:12240/api/cattle-data/1"
2.5 创建牛只数据
接口: POST /api/cattle-data
请求头:
Content-Type: application/json
请求体示例:
{
"type": "鲁西牛",
"province": "安徽省",
"location": "安徽淮南市",
"price": 25.50,
"provincePrice": 24.80,
"inventory23th": 1000,
"slaughter23th": 500,
"inventory24th": 1200,
"slaughter24th": 600,
"inventory25th": 1300,
"slaughter25th": 650
}
测试方法1: curl
curl -X POST "http://119.45.30.82:12240/api/cattle-data" \
-H "Content-Type: application/json" \
-d '{
"type": "鲁西牛",
"province": "安徽省",
"location": "安徽淮南市",
"price": 25.50
}'
测试方法2: Postman
- Method: POST
- URL:
http://119.45.30.82:12240/api/cattle-data - Headers:
Content-Type: application/json - Body (raw JSON): 使用上面的 JSON 示例
2.6 更新牛只数据
接口: PUT /api/cattle-data/{id}
示例: 更新ID为1的数据
测试方法: curl
curl -X PUT "http://119.45.30.82:12240/api/cattle-data/1" \
-H "Content-Type: application/json" \
-d '{
"type": "鲁西牛",
"province": "安徽省",
"location": "安徽淮南市",
"price": 26.00
}'
2.7 删除牛只数据
接口: DELETE /api/cattle-data/{id}
示例: 删除ID为1的数据
测试方法: curl
curl -X DELETE "http://119.45.30.82:12240/api/cattle-data/1"
2.8 批量导入数据(Excel文件)
接口: POST /api/cattle-data/import
测试方法1: curl
curl -X POST "http://119.45.30.82:12240/api/cattle-data/import" \
-F "file=@/path/to/your/file.xlsx"
测试方法2: Postman
- Method: POST
- URL:
http://119.45.30.82:12240/api/cattle-data/import - Body: form-data
- Key:
file(类型选择 File) - Value: 选择你的 Excel 文件
注意: Excel 文件格式要求:
- 第一行:表头(时间、产品/品种、所在产地、活牛价格(元/斤))
- 从第二行开始:数据行
2.9 获取所有省份数据(15个省份)
接口: GET /api/cattle-data/provinces
说明: 返回所有省份的存栏出栏数据和省份均价
测试方法1: 浏览器
http://119.45.30.82:12240/api/cattle-data/provinces
测试方法2: curl
curl -X GET "http://119.45.30.82:12240/api/cattle-data/provinces"
响应示例:
{
"code": 200,
"message": "success",
"data": [
{
"id": 1,
"province": "内蒙古",
"provincePrice": 14.01,
"inventory23th": 948,
"slaughter23th": 464,
"inventory24th": 938,
"slaughter24th": 470,
"inventory25th": 1032,
"slaughter25th": 520,
"createTime": "2025-11-27T10:00:00",
"upTime": "2025-11-27T10:00:00"
}
]
}
2.10 根据省份名称获取省份数据
接口: GET /api/cattle-data/provinces/{province}
说明: 根据省份名称查询单个省份的存栏出栏数据
测试方法1: 浏览器
http://119.45.30.82:12240/api/cattle-data/provinces/内蒙古
测试方法2: curl
curl -X GET "http://119.45.30.82:12240/api/cattle-data/provinces/内蒙古"
2.11 获取全国总量数据(全国存出栏)
接口: GET /api/cattle-data/national
说明: 自动从省份数据表计算并返回全国年份存栏和出栏总量数据
测试方法1: 浏览器
http://119.45.30.82:12240/api/cattle-data/national
测试方法2: curl
curl -X GET "http://119.45.30.82:12240/api/cattle-data/national"
响应示例:
{
"code": 200,
"message": "success",
"data": {
"id": 1,
"nationalInventory23th": 3042,
"nationalSlaughter23th": 7251,
"nationalInventory24th": 2802,
"nationalSlaughter24th": 7304,
"nationalInventory25th": 2587,
"nationalSlaughter25th": 0,
"createTime": "2025-11-27T10:00:00",
"upTime": "2025-11-27T10:00:00"
}
}
说明:
- 如果数据不存在,会自动从
cattleprovince表计算并创建 - 全国总量 = 15个省份对应字段的总和
2.12 重新计算全国总量数据
接口: POST /api/cattle-data/national/recalculate
说明: 根据 cattleprovince 表中的所有省份数据重新计算全国总量
测试方法: curl
curl -X POST "http://119.45.30.82:12240/api/cattle-data/national/recalculate"
使用场景:
- 直接修改了数据库中的省份数据后,需要重新计算全国总量
- 确保全国总量数据与省份数据保持一致
3. 使用 Swagger UI 测试(推荐)
访问 Swagger UI
http://119.45.30.82:12240/swagger-ui.html
在 Swagger UI 中:
- 可以看到所有接口的详细文档
- 可以直接在页面上测试接口
- 可以查看请求和响应示例
- 支持在线测试所有接口
4. 响应格式说明
所有接口返回统一的响应格式:
成功响应:
{
"code": 200,
"message": "操作成功",
"data": {
// 具体数据
}
}
错误响应:
{
"code": 400,
"message": "错误信息",
"data": null
}
5. 快速测试脚本
测试脚本 (test_api.sh)
#!/bin/bash
BASE_URL="http://119.45.30.82:12240/api/cattle-data"
echo "=== 测试1: 获取所有数据 ==="
curl -X GET "${BASE_URL}"
echo -e "\n\n=== 测试2: 按省份筛选 ==="
curl -X GET "${BASE_URL}?province=安徽省"
echo -e "\n\n=== 测试3: 按品种筛选 ==="
curl -X GET "${BASE_URL}?type=鲁西牛"
echo -e "\n\n=== 测试4: 创建数据 ==="
curl -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-d '{
"type": "测试品种",
"province": "测试省",
"location": "测试市",
"price": 20.00
}'
echo -e "\n\n=== 测试完成 ==="
使用方法:
chmod +x test_api.sh
./test_api.sh
6. 常见问题排查
6.1 连接超时
- 检查服务器防火墙是否开放 8080 端口
- 检查服务器是否正常运行
- 检查网络连接
6.2 404 错误
- 确认 URL 路径正确
- 确认服务已启动
- 检查 context-path 配置
6.3 500 错误
- 查看服务器日志
- 检查数据库连接
- 检查请求参数格式
6.4 查看服务日志
# 如果使用启动脚本
tail -f log.out
# 或查看 Spring Boot 日志
tail -f logs/spring.log
7. 接口列表汇总
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/cattle-data |
获取所有数据(支持 province、type 参数筛选) |
| GET | /api/cattle-data/{id} |
根据ID获取单条数据 |
| POST | /api/cattle-data |
创建新数据 |
| PUT | /api/cattle-data/{id} |
更新数据 |
| DELETE | /api/cattle-data/{id} |
删除数据 |
| POST | /api/cattle-data/import |
批量导入Excel文件 |
| POST | /api/cattle-data/import-province |
批量导入省份存栏出栏及均价(Excel) |
| GET | /api/cattle-data/provinces |
获取所有15个省份的存栏出栏数据和省份均价 |
| GET | /api/cattle-data/provinces/{province} |
根据省份名称查询单个省份的存栏出栏数据 |
| GET | /api/cattle-data/national |
获取全国总量数据(自动从省份数据表计算) |
| POST | /api/cattle-data/national/recalculate |
重新计算全国总量数据 |
8. 测试建议
- 先测试 GET 接口:确认服务正常运行
- 测试 POST 创建:添加测试数据
- 测试 PUT 更新:修改刚创建的数据
- 测试 DELETE 删除:清理测试数据
- 测试导入功能:使用真实的 Excel 文件
9. 性能测试
使用 Apache Bench (ab) 进行压力测试
# 安装 ab
yum install httpd-tools -y # CentOS
apt-get install apache2-utils -y # Ubuntu
# 测试 GET 接口
ab -n 1000 -c 10 http://119.45.30.82:12240/api/cattle-data
# 参数说明:
# -n: 总请求数
# -c: 并发数
祝测试顺利!如有问题,请查看服务器日志或联系技术支持。