gradle 依賴:html
buildscript { ext { springBootVersion = '1.5.9.RELEASE' swaggerVersion = '2.7.0' } repositories { maven { url '私服倉庫地址' } } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } dependencies { compile group: 'io.springfox', name: 'springfox-swagger2', version: swaggerVersion compile group: 'io.springfox', name: 'springfox-swagger-ui', version: swaggerVersion }
Swagger 配置:java
@Configuration @EnableSwagger2 public class Swagger2 { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis( RequestHandlerSelectors.basePackage("com.xxx.xxx")).paths( PathSelectors.any()).build(); } /** * 頁面中展示的概述信息 */ private ApiInfo apiInfo() { return new ApiInfoBuilder().title("標題").contact("Author").version( "Version").build(); } }
訪問:http://IP:port/contextPath/swagger-ui.htmlspring
相關注解說明:api
@Api:做用於Controller上,描述控制器的做用 @ApiOperation:做用於方法上,描述方法的做用 @ApiIgnore:做用於方法上,使該方法不被顯示在Swagger UI 文檔中 @ApiImplicitParam:做用於方法上,描述方法中請求的參數
@Api(value = "這是一個控制器", description= "這個控制器是處理XXX的") public class XxxController{ /** * tags 能夠將控制的方法進行分類,想用tags的方法在同一父節點下 */ @GetMapping("/user/{id}") @ApiOperation(value = "獲取用戶信息", tags = "tag1") @ApiImplicitParam(name = "id", value = "參數描述", required = true, dataType = "String") public User getUser(@PathVariable String id){ return new User(); } }
@ApiModel:做用與POJO類上,可顯示POJO類屬性 @ApiModelProperty:做用於@ApiModel標記的POJO類的屬性上,對屬性進行描述
@ApiModel public class User{ @ApiModelProperty("姓名") private String name = ""; }
其餘註解沒有深刻研究,歡迎補充!app