swagger-ui页面接口的入参出参与代码实体类不一致有差异
后端开发,在进行后端接口开发时,会用到swagger进行接口管理。
路径:http://local:8080/xxx/swagger-ui.html
但是在swagger-ui页面,查看接口时,发现入参出参列表与自己开发的接口出入参实体类不一样。
碰到这个问题,很多人第一反应,以为是 浏览器缓存,客户端缓存等导致的,其实不是的,真正原因是开发人员定义的实体类的api model名导致的。
比如工程中有两个实体类,这两个实体类是完全不一样的,只是ApiModel命名一样。
如下两个实体类
是你的接口用的入参实体类
是工程里已有的实体类
但是由于两个实体类都叫同一个名:@ApiModel(“查询详细信息入参”)
所以就导致了,你的接口swagger-ui展示成了其他的实体类参数了。
@ApiModel("查询详细信息入参")
public class PerionInfo implements Serializable{
private static final long seriUID = -1L;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("性别")
private String sex;
@ApiModelProperty("生日")
private String birday;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
@ApiModel("查询详细信息入参")
public class CarInfo implements Serializable{
private static final long seriUID = -1L;
@ApiModelProperty("车名")
private String name;
@ApiModelProperty("颜色")
private String col;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
总结:
- 在抄别人代码的时候,一定要注意不能硬抄,关键位置代码一定要改
- swagger 管理接口比较常见,开发人员需要用心维护好
- 这个坑,有缘人就不要再踩了