swagger入门笔记--基本配置

swgger入门


目录


提示:以下是本篇文章正文内容,下面案例可供参考

一、swagger是什么?

swagger相当于一个标准规范,你可以按照它的规范去定义一个接口及接口相关的信息,再通过Swagger衍生出来一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等。spring框架引入swagger,将swagger规范纳入到自身的标准,建立spring-swagger项目,后面改成了现在的Springfox。项目通过引入Springfox,可以扫描相关的代码,生成该描述文件,进而生成与代码一致的接口文档和客户端代码。


swagger一般是使用在前后端分离的项目中,我们项目(课设)虽然是前后端一起做,但是也可以使用一下简单的接口测试,保证我们的前端调用后端接口得到的结果不会不一致!!
官网入口:swagger

二、使用

  • swagger UI
  • swagger2

springboot集成Swagger(基于maven)

步骤:

引入

  1. 新建一个spirngboot-web项目
  2. 导入jar依赖
<!-- 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>
  1. 简单编写一个Helloworld工程

  2. 配置Swagger(config包下)

@Configuration
@EnableSwagger2
public class SwaggerConfig(){
	
}
  1. 访问 http://localhost:8080/swagger-ui.html
    swagger入门笔记--基本配置

配置信息

@Configuration
@EnableSwagger2
public class SwaggerConfig(){
	//配置swagger的Docket的bean实例
	@Bean
	public Docket docket(){
		return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
	}
	//配置Sagger信息
	private ApiInfo apiInfo() {
        return new ApiInfo(
                "borrowRoom",
                "我的课室借用系统Swagger API文档",
                "1.0",
                "https://gdut2021.gitee.io/gdutyang/",
                new Contact("borrowRoom", "https://gdut2021.gitee.io/gdutyang/", "2862751120@qq.com"),//作者信息
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList<VendorExtension>());
    }
}

配置swagger扫描接口

@Bean
public Dockrt docket(){
	return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
	//RequestHandlerSelectors,配置要扫描接口的方式
	//basePagekage:指定扫描的包
	//any():扫描全部
	//none():不扫描
	//withClassAnnotation:扫描类上的注释,参数是一个注释的反射对象
	//withMethodAnnotation:扫描方法上的注解
	.apis(PathSelectors.basePagekage("对应controller包"))
	//path过滤什么路径
	.paths(PahtSelectors.ant("/hler/**"))
	.build();
}

不同环境下是否使用swagger

//配置Swagger的Docket的bean实例
@Bean
public Docket docket(Enviroment evironment){
	//设置要提示的Swagger环境
	Profiles profiles = Profiles.of("dev","test");
	//通过envirnment.acceptsProfiles(profiles);判断是否处在自己设定的环境当中
	boolean flag = environment.acceptsProfiles(profiles);
	return new Docket(DocumentationType.SWAGGER_2)
	.apiInfo(apiInfo())
	.enable(flag)
	.select()
	.apis(RequestHandlerSelectors.basePageage("对应的controller包"))
	.build();//.paths(PathSelectors.ant("/hler/**"))
}

配置多个API分组

.goupname(“name”)

@Bean
public Docket docket1(){
	return new Docket(DocumentationType.SWAGGER_2).groupName("张三")
	@Bean
public Docket docket2(){
	return new Docket(DocumentationType.SWAGGER_2).groupName("李四")
}

总结

Swagger可以在springboot中配置自己负责的接口及相关的Swagger信息,还可以配置Swagger扫描的实体类等。

上一篇:Swagger2快速入门教程笔记


下一篇:Docket 第三章