swagger的使用之二swagger在idea的使用


首先在idea引入后創建一個config 包並添加一個 SwaggerConfig

@Configuration @EnableSwagger2 public class swagger2 { @Bean public Docket createRestApi(){ return new Docket(DocumentationType.SWAGGER_2)
          .apiInfo(apiInfo()) .select()
          .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any())
          .build();
} private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("Springboot中使用Swagger文檔") .description("更多信息請等待更新") .version("1.0") .build(); } }

補充:

//此包路徑下的類,才生成接口文檔
.apis(RequestHandlerSelectors.basePackage("com.bike.controller"))
//加了ApiOperation注解的類,才生成接口文
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))

 

 


啟動的效果

 

 

創建接口controller

首先這里涉及到多個API

1.@Api注解可以用來標記當前Controller的功能。

2.@ApiOperation注解用來標記一個方法的作用。
3.@ApiImplicitParam注解用來描述一個參數,可以配置參數的中文含義,也可以給參數設置默認值,這樣在接口測試的時候可以避免手動輸入。
如果有多個參數,則需要使用多個@ApiImplicitParam注解來描述,多個@ApiImplicitParam注解需要放在一個

4.@ApiImplicitParams注解中。需要注意的是,@ApiImplicitParam注解中雖然可以指定參數是必填的,但是卻不能代替@RequestParam(required = true),前者的必填只是在Swagger2框架內必填,拋棄了Swagger2,這個限制就沒用了,所以假如開發者需要指定一個參數必填,@RequestParam(required = true)注解還是不能省略。

如:

@RestController
@Api(tags = "用戶管理相關接口")
@RequestMapping(value="/users") // 通過這里配置使下面的映射都在/users下,可去除
public class UserController {

@ApiOperation(value = "查詢用戶",notes = "根據id查詢用戶")
//描述一個參數,可以配置參數的中文含義,也可以給參數設置默認值,required = true表示如果swagger測試為必填,defaultValue默認值
@ApiImplicitParam(name= "id",value = "用戶id",required = true,defaultValue = "66")
@GetMapping("/user")
public User getUserById(Integer id){
User user = new User();
user.setId(id);
return user;
}
@ApiOperation(value = "刪除用戶",notes = "根據id刪")
@ApiImplicitParam(name = "id",value = "用戶id",required = true,defaultValue = "55")
@ApiResponses({
@ApiResponse(code = 200,message = "刪除成功"),
@ApiResponse(code = 500,message = "失敗")
})
@DeleteMapping("/user/{id}")
public void deleteUserById(@PathVariable Integer id){
System.out.println("deleteUserById:"+id);
}

@PostMapping("/user")
@ApiOperation(value = "添加用戶",notes = "添加用戶接口")
public User addUser(@RequestBody User user) {
return user;

}

@PutMapping("/user")
@ApiImplicitParams({
@ApiImplicitParam(name="id",value = "用戶id",required = true,defaultValue = "77"),
@ApiImplicitParam(name="username",value = "用戶名",required = true,defaultValue = "taoge"),
})
@ApiOperation(value = "更新用戶",notes= "根據id更新用戶的接口")
// @ApiIgnore //表示忽略生成此接口
public User updateUserById(@RequestBody User user) {
return user;
}
}
在實體類中的用法
@Data
@ApiModel(value = "用戶表參數說明",description = "用戶表參數說明")
public class User {
@ApiModelProperty(value = "用戶id")
private Integer id;
@ApiModelProperty(value = "用戶姓名")
private String name;
@ApiModelProperty(value = "用戶年齡")
private Integer age;
}
效果如下:

 

 Controller類效果

 

 

 

 

 

 實體類效果

 

 

 

 



 


免責聲明!

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



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