coding
coding喵的gravatar头像
coding喵2019-08-21 16:54:47
springboot集成SwaggerBootstrapUI文档

1.导包

由于是基于swagger的需要先引入swagger包

       <!--引入swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

        <!--引入swagger ui包-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.9.3</version>
        </dependency>

 

2.新建Swagger配置类

import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @Description  Swagger文档
 * @Author thcoding
 * @Date 2019/5/23
 **/
@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
public class SwaggerConfiguration {


    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.xxx.group"))
                .paths(PathSelectors.any())
                .build();
    }


    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("xxxxxxx接口管理文档")
                .description("xxxx接口管理文档")
                .termsOfServiceUrl("http://127.0.0.1:8080/")
                .contact(new Contact("coding喵","","thcoding@163.com"))
                .version("1.0")
                .build();
    }

}

 

- @Configuration:声明配置文件
- @EnableSwagger2:开启Swagger2
- @EnableSwaggerBootstrapUI:开启SwaggerBootstrapUI

 

- basePackage:声明主包
- title:文档名称
- 团队访问网址:termsOfServiceUrl
- 账号信息:Contact
- version:版本

 

3.常用注解

@ApiModel(value = "xxx",description = "xxx")
- 用于实体类上,value=实体类名称,description用于描述实体类

代码示例:

springboot集成SwaggerBootstrapUI文档

 

@ApiModelProperty(value = "xx")
- 用于描述字段

代码示例:

springboot集成SwaggerBootstrapUI文档

 

@Api(tags = "xxx")
- 用于描述控制器Controller,即xx管理

代码示例:

springboot集成SwaggerBootstrapUI文档

 

@ApiOperation(value="xx",notes = "xx")
- 用于描述控制器内单个方法,value=方法名称,notes描述方法

代码示例:

springboot集成SwaggerBootstrapUI文档

 

4.文档访问

在浏览器输入:http://${host}:${port}/${项目服务主路径}/doc.html

 

5.文档效果图:

5.1主页

springboot集成SwaggerBootstrapUI文档

 

5.2实体对象展示

springboot集成SwaggerBootstrapUI文档

 

5.3接口出参及入参展示

springboot集成SwaggerBootstrapUI文档

 

5.4接口出参及入参展示

springboot集成SwaggerBootstrapUI文档

 

5.5自带接口调试springboot集成SwaggerBootstrapUI文档

 

6.一些说明

SwaggerBootstrapUI只是基于Swagger,用于文档页面美化,方便前后端查看的工具。
我在这里提供的注解不多,主要是我认为代码中还是少写点汉字,或是对逻辑无用的代码,以免造成代码冗余,这里的注解是我自己准备常用的注解。
对于该ui,我自己依然有些未解决的问题,比如,生产环境中如何限制对文档的访问?这个我看了官方文档,写了配置也没起作用,暂时也无时间去深究。
由于版本的问题,有些地方可能会不太一样,比如文档访问路径,有的版本是http://${host}:${port}/doc.html
后续遇到相关问题我会陆续补充

 

 

 


打赏

已有1人打赏

最代码官方的gravatar头像

分享到:

最近浏览
走丢的小怪兽 LV81小时前
月亮月亮
wanxiaochao LV99小时前
月亮月亮星星
xielxi LV3前天
星星星星星星
ruirui LV15前天
月亮月亮月亮星星星星星星
hhuangh LV3前天
星星星星星星
taojava LV3前天
星星星星星星
decent LV69月16日
月亮星星星星
q532068485 LV29月13日
星星星星
flinkandspark LV29月12日
星星星星
PhilLin LV29月11日
星星星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友