swagger @ApiModel添加实体类不生效的解决
这篇文章主要介绍了swagger @ApiModel添加实体类不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。
目录
@ApiModel添加实体类不生效
Models实体类无法显示
解决办法
@ApiModel添加实体类不生效
swagger, @ApiModel, Models, 实体类无法加载
在使用swagger时, 以为加上@ApiModel在实体类上就可以在swagger-ui.html的Models里面显示.
但是我创建了很多实体类, 但怎么也只显示了一个???
Models中无论如何只有User这一个实体类。 后来发现不是加上@ApiModel就可以加入Models中的,必须要在controller层中关联这个实体类。由于我把所有实体类创建好后只测试了User,其它的实体类都没关联,所以swagger-ui.html中的Models没有实体类的显示。
Models实体类无法显示
Swagger环境为:
1 2 3 4 5 6 7 8 9 10 11 12 | <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> < dependency > < groupId >io.springfox</ groupId > < artifactId >springfox-swagger2</ artifactId > < version >2.9.2</ version > </ dependency > <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> < dependency > < groupId >io.springfox</ groupId > < artifactId >springfox-swagger-ui</ artifactId > < version >2.9.2</ version > </ dependency > |
编写实体类 User:
1 2 3 4 5 6 7 | @ApiModel ( "用户实体类" ) public class User { @ApiModelProperty ( "用户名" ) private String username; @ApiModelProperty ( "密码" ) private String password; } |
在controller中使用该实体类:
1 2 3 4 | @PostMapping ( "/user" ) public User user() { return new User(); } |
却发现Models中根本没有User类的信息!
解决办法
给实体类添加 get 和 set 方法!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @ApiModel ( "用户实体类" ) public class User { @ApiModelProperty ( "用户名" ) private String username; @ApiModelProperty ( "密码" ) private String password; public String getUsername() { return username; } public void setUsername(String username) { this .username = username; } public String getPassword() { return password; } public void setPassword(String password) { this .password = password; } } |
成功显示!
由此可知,以后写实体类的时候,写全!
构造方法,get、set方法,toString方法全都加上!
以上为个人经验,希望能给大家一个参考
原文链接:https://www.cnblogs.com/xfk1999/p/11964233.html