美文网首页
我的初级Java之路----项目集成swagger

我的初级Java之路----项目集成swagger

作者: 月下飘雪风轻夜 | 来源:发表于2020-11-10 17:58 被阅读0次

    前言:

    既然都搜到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 {
    

    然后运行程序,浏览器输入http://localhost:8080/swagger-ui.html即可访问。

    相关文章

      网友评论

          本文标题:我的初级Java之路----项目集成swagger

          本文链接:https://www.haomeiwen.com/subject/rgbjbktx.html