web接口开发时在调试阶段最麻烦的就是参数调试,前端需要咨询后端。后端有时候自己也不是很了解。这时候就会造成调试一次接口就需要看一次代码。Swagger帮我们解决对接的麻烦

springboot接入swagger

  • springboot 引入swagger只需要引入jar包,然后配置swagger启动。并配合swagger的注解使用就可以实现文档自动生成了。我们先来看看效果

环境准备

  • 代码还是基于spring仓库开发。分支为feature/0004/springboot-swagger

  • swagger.version=2.9.2


<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>

配置


@Configuration
@EnableSwagger2
public class SwaggerConfig2 {
@Bean
public Docket createRestApi() { // 添加请求参数,我们这里把token作为请求头部参数传入后端
ParameterBuilder parameterBuilder = new ParameterBuilder();
List<Parameter> parameters = new ArrayList<Parameter>();
parameterBuilder.name("token").description("令牌")
.modelRef(new ModelRef("string")).parameterType("header").required(false).build();
parameters.add(parameterBuilder.build()); return new Docket(DocumentationType.SWAGGER_2)
.pathMapping("/")
.select()
.apis(RequestHandlerSelectors.basePackage("com"))
.paths(Predicates.not(PathSelectors.regex("/error.*")))
.build().apiInfo(new ApiInfoBuilder()
.title("后端服务说明")
.description("SpringBoot整合Swagger,详细信息......")
.version("1.0")
.contact(new Contact("zxhtom", "zxhtom.blog.csdn.net", "870775401@qq.com"))
.license("The Apache License")
.licenseUrl("http://zxhtom.gitee.io")
.build())
.useDefaultResponseMessages(false)
.securitySchemes(securitySchemes())
.securityContexts(securityContexts())
.globalOperationParameters(parameters);
} private List<ApiKey> securitySchemes() {
List<ApiKey> apiKeyList = new ArrayList();
apiKeyList.add(new ApiKey("Authorization", "token", "header"));
return apiKeyList;
} private List<SecurityContext> securityContexts() {
List<SecurityContext> securityContexts = new ArrayList<>();
securityContexts.add(
SecurityContext.builder()
.securityReferences(defaultAuth())
.forPaths(PathSelectors.regex("^(?!auth).*$"))
.build());
return securityContexts;
} List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
List<SecurityReference> securityReferences = new ArrayList<>();
securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
return securityReferences;
}
}

添加请求头


securitySchemes(securitySchemes())
securityContexts(securityContexts())
  • 在上面的两端配置就是加入全局的token设置的。在swagger-ui界面显示是右上角有一把锁的标志





接口使用





注解使用

注解 功能
@Api() 用在请求的类上。表示该类的请求类用于文档标注
@ApiOperation() 用于方法上。对一个http请求的具体说明,出参入参说明
@ApiModel() 对请求实体的一个说明
@ApiModelProperty 对实体内属性说明,也可以设置默认值
@ApiImpliciParams() 用于请求的方法上,里面是ApiImpliciParam数组
@ApiImpliciParam() 表示单独请求参数。可以设置form表单中参数单独设置
@ApiParam() 对请求方法中参数的单独设置 类似ApiImpliciParam
@ApiResponses() 对请求方法上根据响应码设置说明
@ApiResponse 单个响应码说明
@ApiIgnore() 对该请求的忽略
  • 具体使用可以查看源码。源码上面有给出。

自定义swaggerUI

  • 这里需要首先介绍下spring资源的加载顺序。

src/main/resources/META-INF/resources

src/main/resources/static

src/main/resources/public

  • 这三个优先级依次降低。欢句话说spring首先会在src/main/resources/META-INF/resources下寻找资源。所以这也是我们自定义swaggerUI的策略。我们只需要在META-INF下重新绘画swaggerUI的页面就行了。这里只是提供思路。不具体实现(懒)

加入战队

# 加入战队

微信公众号

最新文章

  1. Web网站的几个并发量级
  2. tcpdump用法
  3. SharedPrefernces使用实例讲解
  4. 使用 CountDownLatch 控制多个线程执行顺序
  5. H5调用Android播放视频
  6. Python数据结构与算法--算法分析
  7. Android 如何更换屏幕上锁界面背景图片
  8. 部署sharepointform验证
  9. MyBastis初次环境配置讲解
  10. PO/VO/POJO/BO/VO图解
  11. Java基础笔记8
  12. 以前的博客内容迁至CSDN,博客名不变,以后博客将在两个平台同步更新
  13. 为了学好Java,我尝试了这 6 个方法
  14. 在.NET程序中实现HttpServer功能
  15. Tokyo Tyrant(TTServer)系列(一)-介绍和安装
  16. 面向对象 反射 和item系列和内置函数和__getattr__和__setattr__
  17. VNC安装配置
  18. 解决linux下node.js全局模块找不到的情况
  19. Jenkins邮件扩展(Email Extension插件 Windows环境)
  20. springboot学习入门之二---配置文件解析

热门文章

  1. cc31a_demo--CppPrimer_静态成员与继承-在派生类中访问基类中的static成员的方法
  2. 面试必问系列之JDK动态代理
  3. egret canvas的style
  4. 关于 charset 的几种编码方式
  5. 【部分】ASP.NET MVC5 - 地址栏传参两种方法
  6. windows 下搭建 MQTT 服务
  7. 10w行级别数据的Excel导入优化记录
  8. Spring-AliasRegistry
  9. Zookeeper Watcher 流程分析(结合源码)
  10. (私人收藏)[开发必备]HTML5最全快速查找离线手册(可查询可学习,带实例)