博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swagger搭建(基于springBoot)详解
阅读量:5036 次
发布时间:2019-06-12

本文共 5270 字,大约阅读时间需要 17 分钟。

  前后端分离后,api接口文档的维护就成了一个让人头疼的问题,api接口更新慢,或因开发工作量大,没时间整理文档,导致前后端分离后前端同学和后端同 学都纠结于文档的问题。而swagger的出现,不亚于一道曙光,功能强大,ui简洁美观,提供在线测试,不能说完美,但基本上解决了文档的问题

       本此搭建是基于springBoot项目,希望对大家有帮助

 

官方网站为:

步骤1.maven

在maven的pom文件中引入相关的依赖

 

io.springfox
springfox-swagger2
2.2.2
io.springfox
springfox-swagger-ui
2.2.2

 

 步骤2.配置Swagger的配置文件

import java.util.ArrayList;      import java.util.List;            import org.springframework.context.annotation.Bean;      import org.springframework.context.annotation.Configuration;            import springfox.documentation.builders.ParameterBuilder;      import springfox.documentation.builders.ApiInfoBuilder;      import springfox.documentation.builders.PathSelectors;      import springfox.documentation.builders.RequestHandlerSelectors;      import springfox.documentation.schema.ModelRef;      import springfox.documentation.service.ApiInfo;      import springfox.documentation.spi.DocumentationType;      import springfox.documentation.spring.web.plugins.Docket;      import springfox.documentation.swagger2.annotations.EnableSwagger2;      import springfox.documentation.service.Parameter;      @Configuration      @EnableSwagger2      public class Swagger2 {                @Bean          public Docket createRestApi() {              ParameterBuilder tokenPar = new ParameterBuilder();                List
pars = new ArrayList
(); tokenPar.name("token").description("令牌") .modelRef(new ModelRef("string")).parameterType("query").required(false).build(); pars.add(tokenPar.build()); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.sst")) .paths(PathSelectors.any()) .build().globalOperationParameters(pars) ; } @SuppressWarnings("deprecation") private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("个人测试") .description("个人测试用api") .termsOfServiceUrl("http://blog.csdn.net/penyoudi1") .contact("测试") .version("1.0") .build(); } }

 

 步骤3.在Controller中引入注解

 

import org.springframework.web.bind.annotation.RequestMapping;      import org.springframework.web.bind.annotation.RestController;            import io.swagger.annotations.Api;      import io.swagger.annotations.ApiImplicitParam;      import io.swagger.annotations.ApiImplicitParams;      import io.swagger.annotations.ApiOperation;            @RestController        @RequestMapping("test")       @Api(value="测试接口Controller")      public class TestController {                @ApiOperation(value="测试用接口", notes="测试用接口" ,httpMethod="POST")          @ApiImplicitParams({              @ApiImplicitParam(name="name", value="用户姓名", dataType = "String", required=true, paramType="form"),              @ApiImplicitParam(name="id", value="id", dataType = "int", required=false, paramType="form")          })          @RequestMapping("word")            public String HelloWord(String name,Integer id) {                return "Hello Word";            }                          }

 

然后输入地址  http://127.0.0.1:8080/SpringSwaggerTest/swagger-ui.html

可以查看到

可以查看到

     看到这个页面,说明配置成功!!

以上就是swagger基于springBoot的配置方法,下面详细说一下具体的参数

swagger配置文件说明
ParameterBuilder tokenPar = new ParameterBuilder();                List
pars = new ArrayList
(); tokenPar.name("token").description("令牌") .modelRef(new ModelRef("string")).parameterType("query").required(false).build(); pars.add(tokenPar.build());

这段代码是默认参数,添加上后,所有的接口都会有一个公共参数,不需要在每个接口单独配置 [java]

.apis(RequestHandlerSelectors.basePackage("com.sst"))
    1. .apis(RequestHandlerSelectors.basePackage("com.sst")) 
return new ApiInfoBuilder()              .title("个人测试")              .description("个人测试用api")              .termsOfServiceUrl("http://blog.csdn.net/penyoudi1")              .contact("测试")              .version("1.0")              .build();

这个是一些页面展示数据的配置,用于标题,分组说明等

controller注解说明
@Api(value="测试接口Controller")

这个注解用于整个类上,对整个类中的接口列表进行简单说明

@ApiOperation(value="测试用接口", notes="测试用接口" ,httpMethod="POST")

 

@ApiOperation(value="测试用接口", notes="测试用接口" ,httpMethod="POST")

 

@ApiImplicitParams({              @ApiImplicitParam(name="name", value="用户姓名", dataType = "String", required=true, paramType="form"),              @ApiImplicitParam(name="id", value="id", dataType = "int", required=false, paramType="form")          })

@ApiImplicitParams是传入参数的集合,里面可以包含多个参数

@ApiImplicitParam(name="name", value="用户姓名", dataType = "String", required=true, paramType="form"),

name是参数的名称,value是参数的说明,dataType是参数的类型,前端不是限制,仅做说明使用,required true时是必传参数,false是选填参数。paramType是提交方式=-= 好像都是写的from

以上就是基本的使用的参数说明

问题

1.在开发中遇到过,使用swagger做excel导出中文乱码的问题,尚未解决,如果你也遇到了,可以单独访问下接口,尝试下是否是swagger本身的问题

 

转载于:https://www.cnblogs.com/a8457013/p/9188630.html

你可能感兴趣的文章
Maven 的聚合
查看>>
sbt使用详解
查看>>
Mybatis初步
查看>>
vue+uwsgi+nginx部署luffty项目
查看>>
ios晋级之路-CALayer以及动画CABaseAnimation
查看>>
一、SQLite的介绍
查看>>
oo第四次总结感悟
查看>>
redis 数据类型详解 以及 redis适用场景场合
查看>>
【Cogs2187】帕秋莉的超级多项式(多项式运算)
查看>>
【CJOJ1793】【USACO 4.3.2】素数方阵
查看>>
POJ 3268 Silver Cow Party(最短路)
查看>>
IFRAME元素的相关js操作
查看>>
TCP与UDP
查看>>
关于layui 下拉框 bug
查看>>
Windows安装MongoDB
查看>>
silverlight datagrid控件,单击标题自定义排序
查看>>
Java实战之02Hibernate-02映射、一级缓存、实体对象状态
查看>>
[转]Implementing User Authentication in ASP.NET MVC 6
查看>>
[转]SSIS cannot convert between unicode and non-unicode string
查看>>
[转]23种经典设计模式的java实现_5_职责链模式
查看>>