文档章节

swagger + spring mvc 实现rest 接口代码与api 同步维护,更新

巡山
 巡山
发布于 2016/06/06 21:19
字数 656
阅读 466
收藏 21

概述

        swagger 是一个规范和完整的框架,是用来生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

        简单的说,就是将res接口的文档解释和代码更新同步,不需要维护代码和文档,造成api文档跟不上代码的速度,api文档更新不及时,还耗费资源维护。

springfox原理

       springfox的原理,是通过解析springmvc的handlerMapping获得接口的信息,生存api文档,使用这种方式不需要太多的学习成本。只需要一些spring 配置即可。开发人员除了一两个注解,不需要了解太多。

swagger springfox基本信息

       swagger  http://swagger.io/

       springfox https://springfox.github.io/springfox/

       swagger 可以和很多技术整合在一起,具体的可以在 swagger -tools菜单下面找  http://swagger.io/open-source-integrations/

       springfox 原名 swagger-springMvc,在2之前的版本和2之后的版本包路径不一样的,因为工作中使用的spring mvc版本为3.2.5,所以决定使用 0.8.8版本。其他版本的可以使用以上两个网站查找。

依赖

compile "com.mangofactory:swagger-springmvc:0.8.8"
compile 'org.ajar:swagger-spring-mvc-ui:0.2'

 

配置

配置分两部分,在xml中

    <!-- swagger springfox -->
    <bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
    <!-- 使用 SwaggerSpringMvcPlugin 方式 -->
    <bean class="org.my.swaggerconfig.SwaggerConfig" />

    <mvc:resources mapping="*.html" location="/" />
    <mvc:default-servlet-handler />

java SwaggerSpringMvcPlugin文件

@Configuration
@EnableSwagger
public class SwaggerConfig {
     private SpringSwaggerConfig springSwaggerConfig;

       /**
        * Required to autowire SpringSwaggerConfig
        */
       @Autowired
       public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
          this.springSwaggerConfig = springSwaggerConfig;
       }

       /**
        * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc framework - allowing for multiple
        * swagger groups i.e. same code base multiple swagger resource listings.
        */
       @Bean
       public SwaggerSpringMvcPlugin customImplementation(){
          return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
                  .includePatterns(".*.*");
       }
}

 SwaggerConfig.java 可以做更多事情,如设置全局环境(过滤参数等)

swagger-ui

ui: http://localhost:8080/springfox/index.html

api :http://localhost:8080/springfox/api-docs

title 等信息可以设置的。

其他信息可以参看官方网站,github,更高版本有更多特性,大家按各自情况选择版本吧

 

 

 

© 著作权归作者所有

巡山
粉丝 2
博文 20
码字总数 12425
作品 0
深圳
私信 提问
Swagger 前端 UI 实现 - swagger-bootstrap-ui

swagger-bootstrap-ui 简介 是的前端UI实现,目的是替换默认的UI实现,使文档更友好一点儿.... 只是的UI实现,并不是替换功能,所以后端模块依然是依赖的,需要配合的注解达到效果,注解说明 功能 ...

八一菜刀
2017/04/19
16.5K
22
Spring REST Docs 1.2.6.RELEASE 与 2.0.3.RELEASE 发布

Spring REST Docs 1.2.6.RELEASE 与 2.0.3.RELEASE 发布了,Spring REST Docs 是 RESTful 服务的测试驱动文档,使用 Asciidoctor 手工编写内容结合使用 Spring MVC Test 框架自动生成示例,轻...

h4cd
2018/12/12
827
0
springboot快速集成swagger

今天技术总监说:小明,我们本次3.0改造,使用swagger2.0作为前后端分离的接口规范,它可以一键生成前后端的API,一劳永逸……小明:??? Spring Boot 框架是目前非常流行的微服务框架,我们...

Coder小明
05/31
0
0
特别好用的swagger ui 封装

Swagger简单介绍 Swagger是一个Restful风格接口的文档在线自动生成和测试的框架 官网:http://swagger.io 官方描述:The World’s Most Popular Framework for APIs. Swagger ui 的原生UI界面...

huanshare
2018/08/13
0
0
SpringCloudSpringBoot使用Swagger2构建强大的RESTful API文档

由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业...

itcloud
2018/08/15
108
1

没有更多内容

加载失败,请刷新页面

加载更多

移动深度学习:人工智能的深水区

人工智能技术经历6年的快速发展,重新定义了很多行业的用户体验,而这仅是开始。 随着5G商用大规模落地,以及智能手机硬件性能越来越强、AIoT设备的快速普及,基于云-边缘-端算法和算力结构的...

博文视点Bv
22分钟前
2
0
vim 分屏 操作

$vim -On file file2 #大写O垂直分屏打开文件 $vim -on file file2 #小写水平打开 # n 表示分屏数,直接n等于文件个数 如果n小于文件,按顺序打开前面的n个,如果大于,打开空编辑页面 分屏快...

突突突酱
25分钟前
2
0
MySQL/Mariadb设置中文字符集(linux)

编辑/etc/my.cnf,添加以下设置 [mysql]default-character-set=utf8[mysqld]character_set_server=utf8[mysqld.safe]default-character-set=utf8[client]default-chara...

编程老陆
28分钟前
3
0
关于linux常用的挂载命令

挂载:就把一块磁盘(可以是光盘,U盘)绑定到一个空目录下面 一般情况下会挂载到mnt目录下面 挂载光盘(把光盘挂载到/mnt/cdrom这个目录中) mount -t iso9660 /dev/cdrom /mnt/cdrom 退出当前目录...

chenhongjiang
29分钟前
3
0
如何分享brain内容外部共享?几个需要知道的TheBrain问答

TheBrain(点击下载)是一款与众不同的思维导图软件,其所有信息通过一个又一个的节点进行联系,最终形成一个杂而不乱的网状结构。从头开始设计,让您捕获您的想法和信息在一个网络的联想,匹...

mnrssj
29分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部