(一) Swagger介绍

Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件

(二)为什么使用Swagger

在现在的开发过程中还有很大一部分公司都是以口口相传的方式来进行前后端的联调,而接口文档很大一部分都只停留在了说说而已的地步,很大一部分的原因就是”懒”,不想写啊,写了代码再写文档,反正我是懒,只要不是强制性要求,没人会愿意写这东西,而且在写的过程中,一个字母的错误就会导致联调时候的很大麻烦,但是通过Swagger,我们可以省略了这一步,而且文档出错率近乎于零,只要你在写代码的时候,稍加几个注解,文档自动生成。还有一点就是文档的修改,定义好的接口并不是一成不变的,可能在开发过程中文档修改不止一次的变化,这个时候就会很难受了,通过Swagger,在线自动生成你怎么写他怎么生,方不方便你自己赶脚

(三)SpringBoot集成Swagger

       1) 添加依赖

<!--Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<!--Swagger-UI -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>

     2) 创建配置文件

@Configuration
@EnableSwagger2
public class SwaggerConfig { @Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.result.controller"))
.paths(PathSelectors.any())
.build();
} private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("springboot利用swagger2构建api文档")
.description("Swagger的RESTful风格API")
.termsOfServiceUrl("https://www.baidu.com")
.version("1.0")
.build();
} }

 

这些做好之后就已经集成了swagger-ui.html 

我们访问

http://localhost:8080/swagger-ui.html


 

 

 

这样其实我们已经配好了,但是怎么使用呢,其实我们只用几个注解就能搞定

 

@Api()用于类;
表示标识这个类是swagger的资源

@ApiOperation()用于方法;
表示一个http请求的操作

@ApiParam()用于方法,参数,字段说明;
表示对参数的添加元数据(说明或是否必填等)

@ApiModel()用于类
表示对类进行说明,用于参数用实体类接收

@ApiModelProperty()用于方法,字段
表示对model属性的说明或者数据操作更改

@ApiIgnore()用于类,方法,方法参数
表示这个方法或者类被忽略

@ApiImplicitParam() 用于方法
表示单独的请求参数

 

例:

@RestController
@Api(value="用户controller",tags={"用户操作接口"})
public class UserController { @PostMapping("/login")
@ApiOperation(value = "登录", notes = "账号密码必输")
public ResponseResult login(String username,String password){
if ("admin".equals(username) || "".equals(password)){
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setCity("中国");
user.setSex("男");
return new ResponseResult().setData(user);
}else {
return new ResponseResult("");
}
} }

启动之后:

 

 

(四)Swagger-UI的汉化

  对于上面我们所用的版 2.7.0,里面是含有国际化的(2.7.0以上版本不含国际化包)

  

 

   国际化的实现

             1) 在你的sources创建  META-INF/resources    ,在这个目录下创建swagger-ui.html

             2) 找到你导入的springfox-swagger-ui  的包,找到这个html文件把里面的内容copy到你新建的swagger-ui.html

     

 

          3) 加入国际化的js


    <!-- 加入国际化的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>

 

重启项目  汉化成功

 

 

对于swagger2.7.2以后的版本没有包含国际化的内容,上述的方式是不行的,目前我还没有找到对于新版本国际化的方案

 

如果谁有新版本国际化的方案请留言,谢谢

 

 

 

SpringBoot集成Swagger2 以及汉化 快速教程的更多相关文章

  1. SpringBoot集成Swagger2在线文档

    目录 SpringBoot集成Swagger2在线文档 前言 集成SpringBoot 登录接口文档示例 代码 效果 注解说明 总结 SpringBoot集成Swagger2在线文档 前言 不得不说, ...

  2. SpringBoot集成Swagger2并配置多个包路径扫描

    1. 简介   随着现在主流的前后端分离模式开发越来越成熟,接口文档的编写和规范是一件非常重要的事.简单的项目来说,对应的controller在一个包路径下,因此在Swagger配置参数时只需要配置一 ...

  3. pfSense用户界面汉化翻译教程

    pfSense用户界面汉化翻译教程 来源 https://blog.51cto.com/fxn2025/2087182 为了记录自己的汉化过程,同时也为了方便网友自己制作汉化版本,我把自己汉化pfSe ...

  4. SpringBoot集成Swagger2实现Restful(类型转换错误解决办法)

    1.pom.xml增加依赖包 <dependency> <groupId>io.springfox</groupId> <artifactId>spri ...

  5. springboot集成swagger2构建RESTful API文档

    在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可 ...

  6. sublimeText3汉化安装教程 附注册码

    sublimeText3汉化安装教程 sublimeText3 很不错,前面几天下了vscore学习Node.js,感觉有点懵,今天下载sublimeText3,遇到的一些小问题,在这里说说: 百度云 ...

  7. springboot 集成swagger2.x 后静态资源报404

    package com.bgs360.configuration; import org.springframework.context.EnvironmentAware; import org.sp ...

  8. springboot集成swagger2报Illegal DefaultValue null for parameter type integer

    springboot集成swagger2,实体类中有int类型,会报" Illegal DefaultValue null for parameter type integer"的 ...

  9. [转] spring-boot集成swagger2

    经测,spring-boot版本使用1.5.2+时需使用springfox-swagger2版本2.5+(spring-boot 1.2 + springfox-swagger2 2.2 在未扫描ja ...

随机推荐

  1. 【3】数据筛选3 - BeautifulSoup4

    #目录     1. 开发前准备     2. 不同解析器对比     3. BeautifulSoup4 初始化和节点对象的认识     4. BS4 案例操作:初始化对象文档     5. 节点查 ...

  2. scanf与getchar

    如下: 5  5 R  R  R  R  R R  R  R  R  R R  R  R  R  R R  R  R  R  R R  R  R  R  R 只允许用scanf,如何写读取函数. 由于 ...

  3. Prüfer序列和cayley定理

    参考资料: 1.matrix67 <经典证明:Prüfer编码与Cayley公式> 2.百度百科 3.Forget_forever prufer序列总结 4.维基百科 5.dirge的学习 ...

  4. idea 快捷键设置

    通过 点击放大镜然后按当前需要修改的快捷键找到需要修改的快捷键,更改成希望的快捷键

  5. 常量Constant

    常量通常指的是一个固定的值,例如:1.2.3.’a’.’b’.true.false.”helloWorld”等. 在Java语言中,主要是利用关键字final来定义一个常量. 常量一旦被初始化后不能再 ...

  6. 使用ajax,后台传回的数据处理

    使用ajax,后台传到前台的是json数据,但这只是一个字符串的形式,需要进行转换为对象 转换后再使用$.each()方法进行遍历 使用alert(typeof  msg) ;  可以查看msg的类型 ...

  7. 【驱动开发】file_operations ---linux 2.6.30

    路径: linux-2.6.30/include/linux/fs.h struct file_operations { struct module   *owner; loff_t         ...

  8. 递归算法(java)

    最近在用EasyUI中的tree遍历节点的时候用到了递归算法,现总结如下: * 递归算法:在函数里调用自身,但必须确定递归出口,即结束条件,不然就是无限循环:  * 递归一般解决的问题:       ...

  9. 洛谷—— P2049 魔术棋子

    https://www.luogu.org/problem/show?pid=2049 题目描述 在一个M*N的魔术棋盘中,每个格子中均有一个整数,当棋子走进这个格子中,则此棋子上的数会被乘以此格子中 ...

  10. Ubuntu 16.04下轻量级文件搜索工具Catfish

    Catfish搜索文件速度快,但是不支持正则表达式. 安装: sudo add-apt-repository ppa:catfish-search/ppa sudo apt-get update su ...