2019年4月4日15:00:30html
pom添加更新web
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
添加註冊配置文件spring
@EnableSwagger2 @Configuration public class SwaggerConfig { // 是否開啓swagger,正式環境通常是須要關閉的 @Value(value = "${swagger.enabled}") Boolean swaggerEnabled; @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(swaggerEnabled).select() .apis(RequestHandlerSelectors.basePackage("com.zs.logistics")).paths(PathSelectors.any()).build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("API文檔").version("1.0.0").build(); } }
application.properties配置api
swagger.enabled=true
線上的時候關閉app
RequestHandlerSelectors.basePackage("com.zs.logistics")
這個是你須要掃描的包的路徑,根據需求配置ide
注意這個光這個是不夠的,還要配置swagger-uiui
@Configuration public class AppConfig extends WebMvcConfigurationSupport { @Autowired private AdminLoginInterceptor adminLoginInterceptor; public static String[] adminAllowUrl = { "/api/admin/login" }; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/"); registry.addResourceHandler("/upload/**").addResourceLocations("classpath:/upload/"); registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); }
接口裏面使用swagger註解spa
@Api(tags = "管理員操做相關接口") @RestController public class LoginApiController { @Autowired private AdminService adminService; @ApiOperation(value = "管理員登陸接口") @PostMapping("/api/admin/login") public Map<String, Object> admin(@RequestParam(value = "name", defaultValue = "") String name, @RequestParam(value = "password", defaultValue = "") String password) { try { return ResponseHelper.responseMenu(200, "成功", admin, adminPermission); } catch (Exception e) { // return ResponseHelper.responseMessage(201, e.getMessage() + e.toString()); return ResponseHelper.responseMessage(201, e.getMessage()); } } }
訪問localhost:8080/swagger-ui.htmlcode
其餘經常使用註解htm
- @Api()用於類; 表示標識這個類是swagger的資源 - @ApiOperation()用於方法; 表示一個http請求的操做 - @ApiParam()用於方法,參數,字段說明; 表示對參數的添加元數據(說明或是否必填等) - @ApiModel()用於類 表示對類進行說明,用於參數用實體類接收 - @ApiModelProperty()用於方法,字段 表示對model屬性的說明或者數據操做更改 - @ApiIgnore()用於類,方法,方法參數 表示這個方法或者類被忽略 - @ApiImplicitParam() 用於方法 表示單獨的請求參數 - @ApiImplicitParams() 用於方法,包含多個 @ApiImplicitParam
詳細使用參考
https://www.cnblogs.com/fengli9998/p/7921601.html
當你須要廢棄某個方法的時候,加上
@Deprecated
swagger2生成的文檔也會是灰色