目录
一、创建springboot项目
二、添加swagger相关依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
三、在启动类上加上@EnableOpenApi注解
@SpringBootApplication
@EnableOpenApi
public class SpringbootMybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisApplication.class, args);
}
}
四、启动,输入http://localhost:8081/swagger-ui/index.html
出现此页面表示成功
五、可自定义一个Swagger配置类
可以把上面启动类的@EnableOpenApi删除
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
/**
* @author LTL
* @date 2021-06-28 16:53
*/
@Configuration
@EnableOpenApi
public class SwaggerConfig {
//配置swagger的Docket的Bean实例
@Bean
public Docket docket() {
return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo());
}
//配置swaagger信息=apiInfo
private ApiInfo apiInfo(){
//作者信息
Contact contact = new Contact("ltl","","17700*****@qq.com");
return new ApiInfo("ltl的标题Api Documentation",
"ltl的描述Api Documentation",
"版本信息1.0",
"urn:tos",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList<>());
}
}
运行结果如下:
可指定扫描方式
//配置swagger的Docket的Bean实例
@Bean
public Docket docket() {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
//.enable(false)
.select()
//RequestHandlerSelectors配置要扫描接口的方式,可点击该源码查看扫描方式
//basePackage:指定扫描包;any()扫描全部;none():不扫描;
.apis(RequestHandlerSelectors.basePackage("com.ltl.controller"))
.build();
}
enable(false)表示关闭swagger,可以自定义哪些环境需要开启服务
可配置API文档分组,指定自己的swagger配置,实现多个Docket即可
//配置swagger的Docket的Bean实例
@Bean
public Docket docket() {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.groupName("田思雨")
//.enable(false)
.select()
//RequestHandlerSelectors配置要扫描接口的方式,可点击该源码查看扫描方式
//basePackage:指定扫描包;any()扫描全部;none():不扫描;
.apis(RequestHandlerSelectors.basePackage("com.ltl.controller"))
.build();
}
@Bean
public Docket docket1(){
return new Docket(DocumentationType.OAS_30).groupName("田思雨1号");
}
@Bean
public Docket docket2(){
return new Docket(DocumentationType.OAS_30).groupName("田思雨2号");
}
效果如下
六、在实体类和controller加注解
@Api(tags="")用于Controller
@ApiOperation用于Controller内的方法
@ApiParam用于Controller内的方法的参数解释
@ApiModel标识类名
@ApiModelProperty用于解释属性名称
@ApiModel("用户实体类")
public class User {
@ApiModelProperty("用户id")
private int id;
@ApiModelProperty("用户名")
private String username;
@ApiModelProperty("用户密码")
private String password;
@ApiModelProperty("用户邮箱")
private String email;
}
//用户登录
@ApiOperation("用户登录控制")
@PostMapping("/login")
public String login(@ApiParam("邮箱") @RequestParam("email") String email,
@RequestParam("password")String password,
HttpSession session, Map<String,Object> map){
}
效果如下