在Java后端,每次开发一个新的接口后需要自测,此时可以借助Swagger功能很好地完成自测,下面将通过注解的方式来添加Swagger。

  (1)代码部分

 package com.bien.edge;

 import java.util.ArrayList;
import java.util.List;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration
@EnableSwagger2
public class Swagger2 { @Bean
public Docket createRestApi() {
ParameterBuilder userid = new ParameterBuilder();
ParameterBuilder username = new ParameterBuilder();
ParameterBuilder lang = new ParameterBuilder();
List<Parameter> pars = new ArrayList<Parameter>(); // 添加默认请求头
userid.name("X-Person-No").description("人员号码").modelRef(new ModelRef("string")).parameterType("header").required(false);
username.name("X-Person-Name").description("人员姓名").modelRef(new ModelRef("string")).parameterType("header").required(false);
lang.name("X-Lang-Id").description("语言标准编码").modelRef(new ModelRef("string")).parameterType("header").required(false).defaultValue("zh_CN"); pars.add(userid.build());
pars.add(username.build());
pars.add(lang.build());
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.bien.edge"))
.paths(PathSelectors.any())
.build().globalOperationParameters(pars); } private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Bien94Edge项目API可视化")
.description("Bien94Edge项目API可视化相关接口")
.version("1.0")
.build();
}
}

  (2)配置部分

  在application.yml文件中配置swagger的api访问方式,如下图所示:  

  

  其实,也可以不用配置这些属性的,默认是api-docs,当前path值也可以设置为其它值,只要不与工程中其它路径冲突即可,也就是说保持唯一性即可。

  默认时,链接类似于这样的:http://localhost:1994/bien-edge/v2/api-docs

  若path设置为/swagger.json时,链接类似于这样的: http://localhost:1994/bien-edge/swagger.json

  若path设置为/swaggerbien时,链接类似于这样的: http://localhost:1994/bien-edge/swaggerbien

  (3)效果部分

  

  上图是运行swagger后展示的一些相关说明信息,在上述代码中apiInfo()函数进行设置即可。

  

  上图所展示的是每个接口的默认请求头信息,可以根据需要进行添加,并且还可以设置必须和非必须属性。

  到此,项目中的Swagger功能添加完毕,是不是很简单呀。^-^

  (4)其它

  当访问swagger时,会有如下这些servlet path:

  • /
  • /swager-ui.html
  • /swagger-resources
  • /swagger-resources/configuration/ui
  • /swagger-resources/configuration
  • /swagger-resources/configuration/security
  • /error
  • /csrf
  • /webjars/springfox-swagger-ui/fonts/source-code-pro-v7-latin-600.woff2
  • /webjars/springfox-swagger-ui/fonts/titillium-web-v6-latin-regular.woff2
  • /webjars/springfox-swagger-ui/swagger-ui-bundle.js
  • /webjars/springfox-swagger-ui/springfox.js
  • /webjars/springfox-swagger-ui/swagger-ui.css
  • /webjars/springfox-swagger-ui/swagger-ui-standalone-preset.js
  • /webjars/springfox-swagger-ui/springfox.css
  • /webjars/springfox-swagger-ui/favicon-32x32.png
  • /webjars/springfox-swagger-ui/favicon-16x16.png

  若是后端API添加了拦截器,那么访问swagger的时候可能会访问不了,此时就需要在拦截器中排除swagger的路径就可以正常访问了。只要排除这三个路径就可以了:/swagger-ui.html、/swagger-resources/**和/webjars/springfox-swagger-ui/**

------20191231闪

如何通过注解方式给项目添加Swagger功能的更多相关文章

  1. 关于springMVC3.0基于注解方式的项目搭建

    前言:开发了几个月的AS3项目,感觉JAVA都用不太熟练了.刚好这几个抽的空,就把自己以前用过的Spring框架再搭一边, 并完整的记录下来 开发环境:tomcat + mysql+ java 1.所 ...

  2. .Net Core项目添加日志功能

    一.微软内置的日志组件 在.Net Core中使用模板新建的Web Api项目时,会自动加入日志功能.只需要在控制器中注入ILogger就可以了.命名空间为:Microsoft.Extensions. ...

  3. 由ASP.NET Core WebApi添加Swagger报错引发的探究

    缘起 在使用ASP.NET Core进行WebApi项目开发的时候,相信很多人都会使用Swagger作为接口文档呈现工具.相信大家也用过或者了解过Swagger,这里咱们就不过多的介绍了.本篇文章记录 ...

  4. WPF|快速添加新手引导功能(支持MVVM)

    阅读导航 前言 案例一 案例二 案例三(本文介绍的方式) 如何使用? 控件如何开发的? 总结 1. 前言 案例一 站长分享过 眾尋 大佬的一篇 WPF 简易新手引导 一文,新手引导的效果挺不错的,如下 ...

  5. 基于已构建S2SH项目配置全注解方式简化配置文件

    如果还不熟悉s2sh项目搭建的朋友可以先阅读 eclipse环境下基于tomcat-7.0.82构建struts2项目 eclipse环境下基于已构建struts2项目整合spring+hiberna ...

  6. springmvc 用注解方式添加事务不生效解决方法

    springmvc 事务注册有很多种方法,在此我只mark 用注解方式添加transaction不生效的解决办法. springmvc 注解方法添加事务步骤: 1.在 spring的 root-con ...

  7. MyBatis通过注解方式批量添加、修改、删除

    唯能极于情,故能极于剑 注: 本文转载于:CodeCow · 程序牛 的个人博客:http://www.codecow.cn/ 一.数据库实体DO public class User implemen ...

  8. Spring学习5-Spring整合JDBC及其事务处理(注解方式)

    一.整合的步骤   1.步骤一:首先要获得DataSource连接池(推荐使用B方式): 要对数据库执行任何的JDBC操作,需要有一个Connection.在Spring中,Connection对象是 ...

  9. Spring学习4-面向切面(AOP)之aspectj注解方式

    一.简介    1.AOP用在哪些方面:AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理.日志管理.权限控制,异常处理等,封装起来,便于减少系统的重复代码,降低模块间的耦合 ...

随机推荐

  1. 珠峰-buffer-流事件

    #### Buffer // 字符串的二进制转10进制 let r = parseInt('11111111', 2); console.log(r); // 打印 255 // Number类型转为 ...

  2. HTML页面缓存

    引出问题: 在做完一个项目迭代上线的时候遇到一个问题:Ht代码部署在nginx里面,当我打包的H5代码上传把之前代码替换掉之后,如果手机端之前有打开过相关的页面,那么在代码上传成功后再次打开,回出现一 ...

  3. 智和网管平台SugarNMS网络综合监控等级保护安全解决方案

    IT运维是一个很大的范畴,涉及到的部门.架构.技术.产品十分广泛.北京智和信通以等保标准为依据,依托丰富的网络安全行业经验,配套自主研发的智和网管平台SugarNMS,提升用户网络关键基础设施综合管理 ...

  4. git 指令笔记

    狂躁,太狂躁!!赶上过年,赶上自己的懒癌,12月底就学完的教程直到今天才整理笔记,中途沉默在游戏中..... 只给出Windows下git指令操作,推荐大家去廖雪峰前辈那里学习(百度搜索:廖雪峰的官方 ...

  5. android手机拍照旋转的问题

    android开发中,遇到过手机拍照,明明是竖着拍的,显示的结果却是横这的,困扰了很久,找了很久找了一种解决方法: ExifInterface exifInterface = new ExifInte ...

  6. linux中文件处理命令

    目录 touch cat more less head tail touch 解释 命令名称:touch 命令所在路径:/bin/touch 执行权限:所有用户 功能描述:创建空文件 语法 touch ...

  7. Windows一些技巧

    更改文件夹的显示名称 在要修改的文件夹下创建desktop.ini,在文件中输入: [.ShellClassInfo] LocalizedResourceName= [要显示的名字] 在CMD中输入命 ...

  8. Orleans[NET Core 3.1] 学习笔记(四)( 2 )获取Grain的方式

    简介 在这一节,我们将介绍如何在Silo和Client中获取Grain及调用Grain Grain获取方式 从Grain内部获取: //根据特定的Key值创建或获取指定的Grain IStudent ...

  9. spring cloud微服务快速教程之(九) Spring Cloud Alibaba--sentinel-限流、熔断降级

    0.前言 sentinel的限流.降级功能强大,可以在控制面板中任意制定规则,然后推送到微服务中: 可以根据URL单独制定规则,也可以根据资源名批量制定规则: 需要注意的地方是:1.GITHUB文件在 ...

  10. Spark学习之路 (十七)Spark分区[转]

    分区的概念 分区是RDD内部并行计算的一个计算单元,RDD的数据集在逻辑上被划分为多个分片,每一个分片称为分区,分区的格式决定了并行计算的粒度,而每个分区的数值计算都是在一个任务中进行的,因此任务的个 ...