======================================== Postman测试接口说明 - 订单列表接口 ======================================== 一、问题原因 ----------- 接口 `/system/view/list` 需要JWT Token认证,直接访问会返回401错误。 从代码可以看到: - 接口调用了 getLoginUser() 方法获取当前登录用户 - 需要从请求Header中获取Token进行验证 - 没有Token或Token无效会返回401认证失败 二、解决方案 ----------- 【步骤1:先登录获取Token】 1. 在Postman中创建新请求 - Method: POST - URL: http://101.43.95.130:8039/appLogin - Headers: Content-Type: application/x-www-form-urlencoded - Body (x-www-form-urlencoded): username: admin (或你的用户名) password: admin123 (或你的密码) 2. 发送请求,从响应中获取Token 响应格式示例: { "code": 200, "msg": "操作成功", "data": { "token": "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjEyMzQ1Njc4LWE5YmMtMTIzNC0xMjM0LTEyMzQ1Njc4OTBhYiIsInVzZXJfaWQiOjEsInVzZXJuYW1lIjoiYWRtaW4iLCJleHAiOjE2OTk5OTk5OTl9.xxxxx", "userId": "1", "userName": "admin", ... } } 【步骤2:使用Token访问订单列表接口】 1. 在Postman中创建新请求 - Method: GET - URL: http://101.43.95.130:8039/system/view/list?status=&pageSize=10&pageNum=1 - Headers: Authorization: Bearer <你的Token> Content-Type: application/json 2. 发送请求即可获取订单列表 三、详细操作步骤 --------------- 【方法1:使用Postman图形界面】 1. 登录获取Token - 打开Postman - 点击 "New" → "HTTP Request" - 设置: * Method: POST * URL: http://101.43.95.130:8039/appLogin - 点击 "Headers" 标签 * 添加: Content-Type = application/x-www-form-urlencoded - 点击 "Body" 标签 * 选择 "x-www-form-urlencoded" * 添加: - Key: username, Value: admin - Key: password, Value: admin123 - 点击 "Send" - 复制响应中的 token 值 2. 访问订单列表 - 创建新请求 - Method: GET - URL: http://101.43.95.130:8039/system/view/list?status=&pageSize=10&pageNum=1 - Headers: * Authorization: Bearer <粘贴刚才复制的token> - 点击 "Send" 【方法2:使用curl命令测试】 1. 先登录获取Token: curl -X POST "http://101.43.95.130:8039/appLogin" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=admin&password=admin123" 2. 使用Token访问订单列表: curl -X GET "http://101.43.95.130:8039/system/view/list?status=&pageSize=10&pageNum=1" \ -H "Authorization: Bearer <你的token>" 四、常见错误及解决方法 -------------------- 【错误1: 401 认证失败】 原因: 没有Token或Token无效 解决: - 检查Authorization Header是否正确 - 确认Token格式: Bearer (注意Bearer后面有空格) - Token可能已过期,重新登录获取新Token 【错误2: 无法连接到服务器】 原因: 网络问题或防火墙 解决: - 检查服务器是否运行: curl http://localhost:8039 - 检查防火墙是否开放8039端口 - 如果使用公网IP,确认服务器防火墙规则 【错误3: 500 服务器错误】 原因: 参数错误或服务器内部错误 解决: - 检查参数是否正确 - 查看服务器日志 - 确认数据库连接正常 【错误4: 404 接口不存在】 原因: URL路径错误 解决: - 确认接口路径: /system/view/list - 检查服务器端口: 8039 - 确认服务器已启动 五、Token说明 ----------- 1. Token格式 - Header名称: Authorization - 值格式: Bearer - 示例: Authorization: Bearer eyJhbGciOiJIUzUxMiJ9... 2. Token有效期 - 默认30分钟(可在application.yml中配置) - Token过期后需要重新登录 3. Token存储 - Token存储在Redis中 - 需要Redis服务正常运行 六、接口参数说明 -------------- 【订单列表接口】 URL: /system/view/list Method: GET 参数: - status: 订单状态(可选) * -2: 已取消 * -1: 拒绝接单 * 0: 待接单 * 1: 已接单 * 2: 已支付(待服务) * 3: 服务中 * 4: 已完成 * 5: 申请退款 * 6: 退款中 * 7: 已退款 * 8: 已结算 - pageSize: 每页数量(默认10) - pageNum: 页码(默认1) 响应格式: { "code": 200, "msg": "操作成功", "rows": [...], "total": 100 } 七、Postman环境变量配置(推荐) --------------------------- 为了方便管理,建议在Postman中配置环境变量: 1. 创建环境 - 点击右上角环境图标 - 点击 "Add" - 环境名称: 陪诊系统 2. 添加变量 - base_url: http://101.43.95.130:8039 - token: (登录后自动设置) 3. 使用变量 - URL: {{base_url}}/system/view/list - Authorization: Bearer {{token}} 4. 自动设置Token(使用Tests脚本) 在登录请求的Tests标签中添加: ```javascript if (pm.response.code === 200) { var jsonData = pm.response.json(); if (jsonData.data && jsonData.data.token) { pm.environment.set("token", jsonData.data.token); } } ``` 八、测试脚本 ----------- 已创建测试脚本: test_postman_api.sh 使用方法: bash test_postman_api.sh 九、快速测试命令 -------------- 【完整测试流程】 # 1. 登录获取Token TOKEN=$(curl -s -X POST "http://localhost:8039/appLogin" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=admin&password=admin123" | \ python3 -c "import sys, json; data=json.load(sys.stdin); print(data['data']['token'] if 'data' in data and 'token' in data['data'] else '')") # 2. 使用Token访问订单列表 curl -X GET "http://localhost:8039/system/view/list?status=&pageSize=10&pageNum=1" \ -H "Authorization: Bearer $TOKEN" | python3 -m json.tool 十、总结 ------- 问题: Postman访问接口不通 原因: 缺少JWT Token认证 解决: 1. 先调用 /appLogin 接口登录获取Token 2. 在请求Header中添加: Authorization: Bearer 3. 然后访问 /system/view/list 接口 ========================================