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。

推薦閱讀: