Vue + SpringBoot
前端只用管理静态页面;html ==> 后端。模板引擎 JSP ==> 后端是主力
https://swagger.io/
需要springbox;
swagger2ui步骤:
新建一个SpringBoot-web项目
导入相关依赖包
<!-- 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> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.2</version> </dependency>编写一个helloword项目
配置Swagger ==> config
@Configuration @EnableSwagger2 //开启Swagger2 public class SwaggerConfig { }可以访问ui界面了(推荐使用后者bootstrap的界面)
http://localhost:8080/swagger-ui.html http://localhost:8081/doc.htmlSwagger浏览器访问报错 Unable to infer base url.
解决方法:主启动类加上@ComponentScan(“swagger配置类所在包”)以保证配置类被扫描到。
@SpringBootApplication() @ComponentScan("com.demo.ceshi.config")//根据自己需要填写包名 public class ApiApplication { public static void main(String[] args) { SpringApplication.run(ApiApplication.class, args); } }配置文件加上
logging.level.io.swagger.models.parameters.AbstractSerializableParameter=errorDocket.select()
@Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) //enable,是否启用Swagger,默认为true,如果为false,Swagger就不能在浏览器访问 //.enable(false) .select() //RequestHandlerSelectors,配置要扫描接口的方式 //basePackage,指定要扫描的包,一般是用这个 //any(),扫描全部 //none(),都不扫描 //withClassAnnotation,扫描类上的注解,参数是一个注解的反射对象 //withMethodAnnotation,扫描方法上的注解 //.apis(RequestHandlerSelectors.basePackage("com.hjl.controller")) .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) //paths(),过滤什么路径 .paths(PathSelectors.ant("/hjl/**")) .build(); }多个Docket实例即可。
@Bean public Docket docket1(){ return new Docket(DocumentationType.SWAGGER_2).groupName("A"); } @Bean public Docket docket2(){ return new Docket(DocumentationType.SWAGGER_2).groupName("B"); } @Bean public Docket docket3(){ return new Docket(DocumentationType.SWAGGER_2).groupName("C"); }