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头像
最近浏览
jialinzzz 2022年6月7日
暂无贡献等级
likeOkd  LV1 2022年3月11日
fangrongwu 2022年3月9日
暂无贡献等级
liuJian2414  LV5 2022年3月2日
PKanor  LV3 2021年12月31日
sjd123  LV4 2021年11月5日
流叶lsc 2021年8月24日
暂无贡献等级
yujiaqi 2021年7月28日
暂无贡献等级
lmr867015531 2021年7月9日
暂无贡献等级
喜欢夜雨吗  LV4 2021年6月24日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友