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就能访问,具体见下图,也太神奇了。

这里写图片描述

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

Spring Boot集成Swagger2并替换默认的UI

Spring Boot继承Swagger2并替换默认的UI,网上大神写的一个页面,美观大气上档次,自己下载下来稍微改了下界面并支持响应参数...
  • soanl
  • soanl
  • 2017年05月02日 11:24
  • 6887

SwaggerUI自动生成API文档(SwaggerUI+SpringBoot)

SwaggerUI+SpringBoot 访问地址 http://localhost:9330/v1/swagger-ui.html#/ Maven依赖 io.sp...
  • zhe1110
  • zhe1110
  • 2016年11月02日 10:29
  • 5775

springboot整合swagger UI 、spring-data-JPA

本博客为个人所写,有不对地方请大家指正! 1.首先目录结构 2.pom.xml
  • lijunfan_rh
  • lijunfan_rh
  • 2017年01月17日 10:41
  • 1110

Spring Boot集成Swagger2

本节主要从以下几个方面进行讲解: (1)Swagger的产生; (2)Swagger的介绍; (3)新建maven java project; (4)在pom.xml添加依赖; (5)创建S...
  • u014351782
  • u014351782
  • 2016年10月27日 10:53
  • 4354

SpringBoot学习笔记之集成swagger

SpringBoot学习笔记之集成swagger
  • liyuejin
  • liyuejin
  • 2017年09月20日 08:51
  • 787

springboot中集成swagger

由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这...
  • zhang89xiao
  • zhang89xiao
  • 2017年03月13日 19:13
  • 367

SpringBoot整合Swagger

作者:小柒 发表于 2017-08-29    |   分类于 springBoot 前段时间整合过的一个支付服务,由于使用了Spring Boot快速开发,但是又懒得写详细的文档介...
  • qq_35731570
  • qq_35731570
  • 2017年09月04日 09:30
  • 93

springboot+mybatis+Swagger2完美集成

  • 2017年02月17日 13:40
  • 31.29MB
  • 下载

Spring boot 中使用swagger-ui实现 restful-api

swagger感觉很好用
  • u013218587
  • u013218587
  • 2017年01月23日 11:07
  • 1801

初次尝试swagger springmvc集成 生成restful api文档

集成 springmvc swagger ui 走过的坑,detectedType.toLowerCase is not a function 终于解决了这个错误...
  • qq_35901623
  • qq_35901623
  • 2017年11月05日 12:00
  • 134
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringBoot和Swagger结合提高API开发效率
举报原因:
原因补充:

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