springboot添加swagger2組件


swagger2是一個可以構建和調試RESTful API文檔的組件,利用swagger2的注解可以快速的在項目中構建Api文檔,並且提供了測試API的功能

1,引入依賴

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version>
</dependency>

2,配置swagger2

@Configuration
@EnableSwagger2
public class Swagger2Configration {
    
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("org.my.security"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot添加Swagger2組件")
                .description("Spring Boot添加Swagger2組件")
                .version("1.0")
                .build();
    }
}

@configration 標識這是一個配置類

@EnableSwagger2開啟swagger2

apis表示swagger需要掃描的包
PathSelectors.any()表示路徑選擇器匹配所有路徑

apiInfo() swagger頁面上的一些展示信息

3,swagger常用注釋

@Api() 用於類;表示標識這個類是swagger的資源 
tags–表示說明 
value–也是說明,可以使用tags替代 
@ApiOperation() 用於方法;表示一個http請求的操作 
value用於方法描述 
notes用於提示內容 


@ApiParam() 用於方法,參數,字段說明;表示對參數的添加元數據(說明或是否必填等) 
name–參數名 
value–參數說明 
required–是否必填

@ApiModel()用於類 ;表示對類進行說明,用於參數用實體類接收 
value–表示對象名 

@ApiModelProperty()用於方法,字段; 表示對model屬性的說明或者數據操作更改 
value–字段說明 
name–重寫屬性名字 
dataType–重寫屬性類型 
required–是否必填 
example–舉例說明 
hidden–隱藏

@ApiImplicitParam() 用於方法 
表示單獨的請求參數

@ApiImplicitParams() 用於方法,包含多個 @ApiImplicitParam 
name–參數ming 
value–參數說明 
dataType–數據類型 
paramType–參數類型 
example–舉例說明
@ApiIgnore 作用於方法上,使用這個注解swagger將忽略這個接口

4,打個樣

@RestController
@RequestMapping("user")
@Api("用戶信息接口")
public class UserController {
    
    @GetMapping("/{id}")
    @ApiOperation(value="查詢用戶", notes="根據id來查詢用戶")
    @ApiImplicitParam(name = "id", value = "用戶ID")
    @JsonView(User.UserSimplaView.class)
    public User getUser(@PathVariable String id){
        User user = new User();
        user.setUserName("陳明羽");
        user.setPassWord("root明羽");
        return user;
    }

    @GetMapping("/userDetail/{id}")
    @ApiOperation(value="查詢用戶詳情", notes="根據id來查詢用戶詳情信息")
    @ApiImplicitParam(name = "id", value = "用戶ID")
    @JsonView(User.UserDetailView.class)
    public User getUserDetail(@PathVariable String id){
        User user = new User();
        user.setUserName("陳明羽");
        user.setPassWord("root明羽");
        return user;
    }
    
}

//model對象
@ApiModel(value="用戶對象")
public class User {

  @ApiModelProperty(value="用戶名",name="userName")
  private String userName;
  @ApiModelProperty(value="密碼",name="passWord")
  private String passWord;

  //get(),set()

}

5,swagger文檔效果

訪問 http://localhost:8080/swagger-ui.html

點擊單個接口

          

 6,測試接口

  以上圖/user/userDetail接口為例

  在Parameters那塊對應字段的value給填上你想測試的值,然后點 try in out!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM