前言:
既然都搜到swagger了,肯定知道是个啥有啥作用了,很懒的我就跳过了,刚开始学Java开发,很多东西前面学后面忘,然后每次重新规划项目时,又要漫天百度,毕竟面向百度编程嘛。所以我决定从0开始,记录下自己的漫漫Java路,方便以后自己温故而知新。
一.添加依赖
implementation("io.springfox:springfox-swagger-ui:2.9.2")
implementation("io.springfox:springfox-swagger2:2.9.2")
二.添加配置项
说的很高大上,实际就一行代码。
在application配置文件里,自定义一个开关属性,用于打开或关闭swagger功能。
spring.swagger.enable=true
三.编写SwaggerConfig类
不是必须的,一些配置根据自己项目需求加减。
@Configuration
@EnableSwagger2
public class SwaggerConfig : WebMvcConfigurationSupport() {
@Value("\${spring.swagger.enable}")
private var swaggerConfig :Boolean = true
@Bean
public fun createRestApi(): Docket {
return Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
.enable(swaggerConfig)
.select()
.apis(RequestHandlerSelectors.basePackage("com.yjb.ht"))//根目录,为哪个目录自动实现api
.paths(PathSelectors.any())
.build()
}
private fun apiInfo(): ApiInfo {
return ApiInfoBuilder().title("接口文档").description("我的api文档")
.termsOfServiceUrl("localhost:8080/swagger-ui.html")
.version("1.0")
.build()
}
//防止@EnableMvc把默认的静态资源路径覆盖了,手动设置的方式
override fun addResourceHandlers(registry: ResourceHandlerRegistry) {
// 解决静态资源无法访问
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/static/");
// 解决swagger无法访问
registry.addResourceHandler("/swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
// 解决swagger的js文件无法访问
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
使用注解@ApiModel("")标记model类,
使用@ApiModelProperty("")标记model的属性
@ApiModel("用户信息bean")
data class User(@ApiModelProperty("用户名")var name:String, var age:Int, var pwd:String, var address:String) {
}
使用@Api("")标注提供服务的类,表示api类
@Api("用户登陆类") //标注类,表示这个api的类
class LoginController {
使用@ApiOperation("")标注请求使用的方法
使用@ApiParam("")标注请求方法里的参数说明
@ApiOperation("获取登陆用户实体信息")
@GetMapping("/say/{name}")
@ApiParam("name")
fun sayBye(@PathVariable("name") name:String): User {