SpringBoot和Swagger结合提高API开发效率

原创 2017年09月27日 22:41:11

现在Web开发越来越倾向于前后端分离,前端使用AngularJS,React,Vue等,部署在NodeJS上,后面采用SpringBoot发布Rest服务,前后端进行分离。这样的架构灵活且特别适合大型团队的协作开发。 那么问题来了,因为前端都是和后端通过API进行交互的,那么前后端的Rest API的接口如何进行定义和沟通呢?首先想到的应该就是Swagger。

那么什么是Swagger,Swagger™的目标是为REST APIs 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能。当服务通过Swagger定义,消费者就能与远程的服务互动通过少量的实现逻辑。类似于低级编程接口,Swagger去掉了调用服务时的很多猜测。 浏览 Swagger-Spec 去了解更多关于Swagger 项目的信息,包括附加的支持其他语言的库。

那么在SpringBoot中,如何和Swagger进行集成呢?其实非常的简单,只需要把
下面的依赖添加到Maven项目的pom.xml文件中,然后加上一个配置java类就可以了。SpringBoot就会自动应用Swagger,并生成相应的接口。
@Maven依赖

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.6.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.6.1</version>
            <scope>compile</scope>
        </dependency>

@加一个Swagger的配置类,从而控制要暴露哪些package下面的REST API已经Swagger web页面上需要显示的应用相关的介绍信息。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo(
                "Example REST API",
                "Example REST API for Service Pack",
                "1.0",
                "Terms of service",
                new Contact("Chancein007 Team", "", ""),"","");
        return apiInfo;
    }
}

上面的2个步骤完成后,就直接启动SpringBoot,当SpringBoot启动完成后,直接在网站后面加上swagger-ui.html就能访问,具体见下图,也太神奇了。

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

手把手带你入门之Swagger UI

关于Swagger UI,从官网找来一段介绍。 简单的来讲, Swagger UI就是API文档生成和测试利器。 Swagger UI is a dependency-freecollectio...

Node.js +Swagger Editor + Swagger-UI 环境搭建

安装node.js下载node.js最新版 https://nodejs.org/en/download/ 点击 安装器 node-v6.11.1.pkg 开始安装 一路下一步,安装完成 no...
  • ruglcc
  • ruglcc
  • 2017年07月26日 22:02
  • 1159

SpringBoot和Swagger结合提高API开发效率

现在Web开发越来越倾向于前后端分离,前端使用AngularJS,React,Vue等,部署在NodeJS上,后面采用SpringBoot发布Rest服务,前后端进行分离。这样的架构灵活且特别适合大型...
  • KunGe_
  • KunGe_
  • 2017年10月19日 10:52
  • 72

使用Swagger在SpringBoot项目中管理API文档(使用Oauth2)

1 、修改pom.xml引入swagger                            io.springfox             springfox-swagger-ui ...

springboot-restful api-swagger2 ui-实战

swagger2 ui 自动生成api文档,就节省了编写接口测试和文档的工作,非常方便下面以集成融云IM api 为例,展示如何配置swagger2 pom.xml org.sprin...

Swagger集成Springboot生成Restful api

前言Spring Boot是目前最流行的微服务框架,Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可以打包你的应用为ja...
  • zjx2016
  • zjx2016
  • 2017年07月05日 12:22
  • 1146

SpringBoot&Swagger构建REST API并生成API文档

概述 开始 注解说明 运行效果 API文档访问与调试概述通常我们要构建API 服务,自然少不了文档,但由于API与文档的分离使得我们每次对API进行的更改都需要再去修改文档后同步文档,不但编写稳定繁琐...
  • zjcjava
  • zjcjava
  • 2017年04月19日 18:36
  • 2586

SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful API

swagger,中文“拽”的意思。它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试。另外swagger很容易构建restful风格的api,简单优雅...
  • forezp
  • forezp
  • 2017年04月30日 16:13
  • 21026

SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful API

转载请标明出处:  http://blog.csdn.net/forezp/article/details/71023536  本文出自方志朋的博客 swagger,中文“拽”的意思。它是一个功能...

SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful API

转载请标明出处: http://blog.csdn.net/forezp/article/details/71023536 本文出自方志朋的博客 swagger,中文“拽”的意思。它是...
  • zwfmu
  • zwfmu
  • 2017年05月03日 22:49
  • 262
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringBoot和Swagger结合提高API开发效率
举报原因:
原因补充:

(最多只允许输入30个字)