Swagger整合spring开发 快速入门

1.swagger介绍

一款强大的接口文档工具,主要作用于前后端分离的一个接口工具,是你项目开发中必不可少的api文档工具,本次swagger只针对初学者快速入门,容易上手

2.maven加入依赖

<!--swagger 整合 springMVC-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>

我用的是2.7版本,可以根据各自需求更换对应版本

3.创建Swagger工具类

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket controllerApi() {
        return new Docket(DocumentationType.SWAGGER_2)
        		//接口分组名称
                .groupName("controller")
                .apiInfo(apiInfo())
                //查询所有接口
             	.select().
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
        		//这些是页面额外的信息,稍微做个了解即可,等下看运行后的页面
                .title("HTTP API")
                .description("管理端接口")
                .termsOfServiceUrl("http://springfox.io")
                .contact("大山里的程序猿")
                .license("Apache license Version 2.0")
//                .licenseUrl("https://github.com/springfox/springfox/")
                .version("2.0")
                .build();
    }

}

运行服务器后,我的端口号是8080,根据各自的端口修改
访问http://localhost:8080/manager/swagger-ui.html#/
如果你出现如下页面表示成功了
在这里插入图片描述

4.指定暴露接口

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket controllerApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("controller")
                .apiInfo(apiInfo())
                .select()
                //指定只暴露ProductController类的接口
                .apis(RequestHandlerSelectors.basePackage(ProductController.class.getPackage().getName()))
                //只暴露ProductController类的/products/*的接口
                .paths(PathSelectors.ant("/products/*"))
                .build();
    }

执行查看结果
在这里插入图片描述
添加controller接口组

只需再多写一个bean就好

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket controllerApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("controller")
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage(ProductController.class.getPackage().getName()))
                .paths(PathSelectors.ant("/products/*"))
                .build();
    }

    @Bean
    public Docket defaultApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("default")
                .apiInfo(apiInfo())
                .select().apis(RequestHandlerSelectors.basePackage(MyErrorController.class.getPackage().getName()))
                .build();
    }

执行结果,点击进行切换
在这里插入图片描述

5.页面介绍

在这里插入图片描述

6.常用注解

1. @ApiOperation
作用在controller接口方法上

@ApiOperation(value = "添加产品",notes = "输入对应的产品信息进行添加")
    @PostMapping
    public Product addProduct(@RequestBody Product product){
        LOG.info("创建产品,参数:{}",product);
        Product result = service.addProduct(product);
        LOG.info("创建产品,结果:{}",result);
        return result;
    }

在这里插入图片描述
2.@ApiModelProperty
作用在实体类上在这里插入图片描述
在这里插入图片描述

更直观的让别人读懂这个对象是干嘛的怎么用

在这里插入图片描述
3.@Api
作用在controller类上

@Api(tags = "product",description = "产品相关")
public class ProductController {

在这里插入图片描述

7.国际化页面

在swagger ui 下有一个静态页面,便是我们现在所使用的
在这里插入图片描述
如果你不喜欢英文,想更换其他语言,那当然是可以的,他的lang包下有多种语言的js文件
在这里插入图片描述
我们调换成中文的来做一个示例
在静态资源类路径下创建两个目录 MATE-INF、resources
赋值swagger-ui.html
在这里插入图片描述
在html中加入两条语句

//转国际化js文件
<script src='webjars/springfox-swagger-ui/lang/translator.js' type='text/javascript'></script>
//中文语言包
  <script src='webjars/springfox-swagger-ui/lang/zh-cn.js' type='text/javascript'></script>

执行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值