swagger @ApiModel添加實體類不生效的解決
@ApiModel添加實體類不生效
swagger, @ApiModel, Models, 實體類無法加載
在使用swagger時, 以為加上@ApiModel在實體類上就可以在swagger-ui.html的Models裡面顯示.
但是我創建瞭很多實體類, 但怎麼也隻顯示瞭一個???
Models中無論如何隻有User這一個實體類。 後來發現不是加上@ApiModel就可以加入Models中的,必須要在controller層中關聯這個實體類。由於我把所有實體類創建好後隻測試瞭User,其它的實體類都沒關聯,所以swagger-ui.html中的Models沒有實體類的顯示。
Models實體類無法顯示
Swagger環境為:
<!-- 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:
@ApiModel("用戶實體類") public class User { @ApiModelProperty("用戶名") private String username; @ApiModelProperty("密碼") private String password; }
在controller中使用該實體類:
@PostMapping("/user") public User user() { return new User(); }
卻發現Models中根本沒有User類的信息!
解決辦法
給實體類添加 get 和 set 方法!
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方法全都加上!
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Spring Boot中如何使用Swagger詳解
- 手把手教你SpringBoot快速集成Swagger的配置過程
- 解決springboot引入swagger2不生效問題
- springboot集成swagger3與knife4j的詳細代碼
- 解決Swagger2返回map復雜結構不能解析的問題