Spring Boot 接口排查笔记:日志、参数与边界条件
记录一套 Spring Boot 接口排查思路,覆盖请求参数、权限状态、数据库数据和日志定位。。Spring Boot 接口排查笔记 // Debug Note 接口问题通常不是突然出现的,它们大多藏在参数、登录态、权限、数据状态和日志细节里。 写在前面 后端接口出问题时,
Spring Boot 接口排查笔记 // Debug Note 接口问题通常不是突然出现的,它们大多藏在参数、登录态、权限、数据状态和日志细节里。 写在前面 后端接口出问题时,最容易犯的错误就是一上来就改代码。 尤其是 Spring Boot 项目里,一个接口从前端请求到最终返回,中间会经过参数接收、权限校验、业务判断、数据库查询、缓存读取、异常处理等很多环节。只看最后的报错,很容易判断错方向。 所以我现在更倾向于先按固定顺序排查,而不是凭感觉猜。 稳定的排查路径,比盲目猜测更重要。 先确认事实,再考虑修改。 适合这个博客项目的排查顺序 我的博客后端主要围绕 Spring Boot 、 MyBatis-Plus 、 JWT 、 Redis 、 MySQL 这些东西展开。接口出问题时,我一般按下面这个顺序看。 第一步 确认请求参数是不是对的 第二步 确认登录态和权限有没有问题 第三步 确认数据库里的数据是否符合预期 第四步 最后再分析代码分支和业务逻辑 这个顺序不一定适合所有项目,但对个人博客这种前后端分离项目来说,基本能覆盖大多数问题。 第一步:先确认请求参数 很多接口问题,最后查下来其实都是参数不对。 比如前端传的是 articleId ,后端接的是 id ;前端传的是字符串,后端按数字处理;前端没有传分页参数,后端默认查第一页;或者接口文档改了,但页面还在用旧字段。 检查项 容易出现的问题 路径参数 /article/{id} 中的 id 是否为空、是否传错 Query 参数 分页、搜索关键字、分类 id 是否符合预期 Body 参数 字段名是否一致,是否有空字符串、空数组、null Header 参数 Token、Content-Type 是否正确携带 参数类型 字符串、数字、布尔值、时间格式是否和后端一致 如果接口返回不对,我一般会先在浏览器 Network 里看真实请求,而不是只看前端代码里“以为传了什么”。 curl -X POST "https://www.wangyang.show/api/article/list" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer xxxxxx" \ -d '{ "page": 1, "pageSize": 10, "keyword