`

SpringBoot2.0配置Swagger2

 
阅读更多

在工作中,不管是前后端分离,还是微服务,还是其他方式的接口的调用,都需要编写和维护接口文档。Swagger可以帮助我们更好的编写和维护API文档,提供Restful风格的API,提供的maven依赖可以更好的集成在spring项目中。

springboot使用swagger超级简单:

1.添加maven依赖:

 

        <dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger2</artifactId>

<version>2.8.0</version>

</dependency>

<dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger-ui</artifactId>

<version>2.8.0</version>

</dependency>

 

 

2.添加swagger配置

package com.yixin.config;



import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.ApiInfoBuilder;

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;



/**

 * Created by shaomaolin on 2018/11/2.

 */

@Configuration

@EnableSwagger2

public class SwaggerConfig {



    @Bean

    public Docket createRestApi() {

        return new Docket(DocumentationType.SWAGGER_2)

                .apiInfo(apiInfo())

                .select()

                //swagger要扫描的包路径

                .apis(RequestHandlerSelectors.basePackage("com.yixin.controller"))

                .paths(PathSelectors.any())

                .build();

    }



    private ApiInfo apiInfo() {

        return new ApiInfoBuilder()

                .title("springboot Swagger 测试")

                .description("Springboot 整合Swagger2")

                .termsOfServiceUrl("localhost:8080/ruleengine")

                .contact(new Contact("Swagger测试","localhost:8080/ruleengine/swagger-ui.html","baidu@qq.com"))

                .version("1.0")

                .build();

    }



}

 

 

3.swagger扫描的包中添加文档说明

package com.yixin.controller;



import com.google.common.base.Preconditions;

import com.yixin.model.RuleUser;

import com.yixin.model.response.RuleUserResponse;

import com.yixin.service.RuleUserService;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiImplicitParam;

import io.swagger.annotations.ApiOperation;

import lombok.extern.log4j.Log4j2;

import org.apache.commons.beanutils.BeanUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;





/**

 * Created by shaomaolin on 2018/11/2.

 */

@Api(value = "用户接口")

@Log4j2

@RestController

@RequestMapping("/user")

public class UserController {



    @Autowired

    private RuleUserService userService;



    @ApiOperation(value = "获取用户", notes = "根据id查询用户信息")

    @ApiImplicitParam(name = "id", value = "用户id", required=true, dataType = "String")

    @ResponseBody

    @GetMapping(value = "/queryUser")

    public RuleUserResponse queryRuleUser(String id) {

        RuleUserResponse resp = new RuleUserResponse();

        try {

            RuleUser user = userService.queryOne(id);

            Preconditions.checkNotNull(user, "查询用户信息为空!");



            BeanUtils.copyProperties(resp, user);

            return resp;

        } catch (Exception e) {

            log.error("查询用户失败!", e);

            throw new RuntimeException(e.getMessage());

        }



    }

}

 

启动springboot项目,浏览器输入http://localhost:8080/ruleengine/swagger-ui.html,就可以看到接口文档了。



 

 

注意:输入地址是一定要将springboot中配置的server.servlet.path路径加上,否则会报404错误。

Swagger注解说明:

官网wiki地址:https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X#quick-annotation-overview

 

@Api:表示标识这个类是swagger的资源 

@ApiOperation:描述针对特定路径的操作或HTTP方法

@ApiImplicitParam:表示API操作中的单个参数

@ApiImplicitParams:允许多个ApiImplicitParam对象列表的包装器

@ApiModel:提供关于Swagger模型的额外信息

@ApiModelProperty:添加和操作模型属性的数据

@ApiParam:为操作参数添加额外的元数据

@ApiResponse:描述一个操作的可能响应

@ApiResponses:允许多个ApiResponse对象列表的包装器

@ResponseHeader:表示可以作为响应的一部分提供的标头

@Authorization:声明要在资源或操作上使用的授权方案

@AuthorizationScope:描述OAuth2授权范围

 

 

 

接口文档管理不一定要使用swagger,也有用阿里的RAP管理文档。

Swagger 和 RAP 的对比:

Swagger优势:

1.编写代码的过程中通过注解的方式编写接口文档

2.项目启动后直接可以访问,不需要单独部署

3.Restful风格的API

4.Swagger是一个开源框架,支持codegen,editor,ui等许多强大的功能,本文只是做了个简单的介绍,此外我们可以定制化开发

缺点:

不支持Mock调用,需要其他mock插件支持

RAP有点:

1.支持Mock调用

2.支持团队功能,方便团队管理

3.支持json或者xml直接导入

缺点:

1.需要单独部署在tomcat容器中

2.不能自动生成,需要手动录入接口文档,接口变化比较时需要单独去维护。

 

  • 大小: 44.4 KB
分享到:
评论

相关推荐

    最基本的SpringBoot2.0,+Swagger-ui,以及redis作为缓存使用,CacheManage管理

    本项目代码包括,最基本的SpringBoot2.0,+Swagger-ui,以及redis的测试类,redis各种类型数据存储的工具类以及测试的sql文件,redi部分配置CacheManage,并且采用注解方式将数据存入缓存和从缓存redis中删除,码云地址...

    RESTFUL的实现-springboot2.0版本

    在实际应用中,我们还需要考虑安全性(如OAuth2或JWT)、性能(如缓存和分页)、错误处理和API文档(如Swagger)等方面。理解并掌握这些概念和实践将帮助开发者构建健壮、可扩展且易于维护的RESTful服务。

    SpringBoot1使用Swagger2例子

    接着,我们需要配置Swagger2,创建一个配置类,并使用`@EnableSwagger2`注解开启Swagger2支持: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new...

    springboot 整合swagger2.0支持API注释显示

    接下来,我们配置Swagger2.0。在SpringBoot的配置类中创建一个`@Configuration`注解的类,并添加`@EnableSwagger2`注解,启动Swagger2.0的支持。同时,定义一个`Docket`实例,配置API的基本信息,如版本号、标题、...

    SpringBoot2.0 Shiro MyBatisPlus权限管理系统.docx

    **SpringBoot2.0 Shiro MyBatisPlus 权限管理系统** 该项目是一个基于SpringBoot 2.0的后台管理系统,采用Shiro安全框架来实现权限控制。它利用了Shiro的强大功能,允许管理员为不同的角色设定不同的访问权限,从而...

    SpringBoot-demo:关于SpringBoot 2.0学习项目练习Demo

    SpringBoot-demo 关于SpringBoot 2.0...2、多套配置文件(开发、测试) 3、thymeleaf 模板引擎的使用 4、Druid 数据库连接池监控 (DruidStatFilter ,DruidStatViewServlet) 5、多数据源mybatis 使用注解实现灵活切换

    springboot整合swagger2的demo.zip

    通过引入相关依赖、配置Swagger2、以及在Controller中添加注解,我们可以创建一个功能完善的API文档系统,提高团队协作和API的可维护性。在实际项目中,可以根据需要进一步定制Swagger2的配置,以满足特定的需求。

    spring Boot 集成swagger2全过程(代码包含集成Spring Security+ JWT)

    接下来,我们需要配置Swagger2。创建一个名为`Swagger2Config`的配置类,其中定义了Swagger的配置信息,包括API的基本路径、版本、联系人信息等: ```java @Configuration @EnableSwagger2 public class Swagger2...

    springboot-swagger.zip

    接下来,我们需要配置Swagger2。在SpringBoot的主配置类上添加`@EnableSwagger2Doc`注解,以启用Swagger2: ```java import springfox.documentation.swagger2.annotations.EnableSwagger2Doc; @SpringBoot...

    SpringBoot在生产快速禁用Swagger2的方法步骤

    SpringBoot禁用Swagger2的方法步骤 SpringBoot框架中,Swagger2是一个非常实用的API文档生成工具,可以帮助开发者快速生成API文档。但是在生产环境中,Swagger2可能会带来安全隐患,因为它可能会暴露敏感信息和接口...

    SpringBoot 项目中引入Swagger2案例.docx

    在这个配置中,`createRestApi()` 方法定义了 Swagger2 的基本设置,包括 API 的基本信息(如标题、描述、版本等)以及哪些包下的控制器会被包含到文档中。`apiInfo()` 方法用于构建 API 的元信息。 为了让文档更...

    swagger+springboot配置

    本文将详细介绍如何在Spring Boot应用中配置Swagger,并实现RESTful身份验证的Token功能。 首先,让我们了解Swagger的核心组件:Springfox-Swagger2和Springfox-Swagger-UI。Springfox-Swagger2是用于生成API文档的...

    Springboot集成Swagger的demo

    在SpringBoot的配置类中,创建一个`@Configuration`注解的类,并在其中添加`@EnableSwagger2`注解来启用Swagger2: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { } ``` 现在,我们需要...

    springBoot入门到不放弃

    【SpringBoot2.0的新特性】 1. 支持Java 9:SpringBoot 2.0兼容Java 9,同时也继续支持Java 8。 2. 基于Spring 5构建:这使得所有Spring 5的新功能都可以在Spring Boot 2.0中使用。 3. 自动化配置增强:针对各种组件...

    详解SpringBoot结合swagger2快速生成简单的接口文档

    SpringBoot结合Swagger2快速生成简单的接口文档 SpringBoot是一款流行的Java框架,Swagger2是一个流行的API文档生成工具。本文将详细介绍如何使用SpringBoot结合Swagger2快速生成简单的接口文档。 为什么选择...

    springboot整合swagger2,高效制作漂亮整洁的接口文档必备

    接下来,我们需要配置Swagger2。在Spring Boot的主配置类或者单独的配置类中添加如下代码: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new ...

    barter.zip

    【标题】"barter.zip" 是一个包含SpringBoot 2.0项目的压缩文件,这个项目已经配置了集成Redis数据库、Mybatis Generator配置以及Swagger 2.1用于API文档的生成。它还内置了Tomcat服务器,方便快速启动和运行。 ...

    Swagger 自定义UI界面.doc

    &lt;artifactId&gt;springfox-swagger2 &lt;version&gt;2.9.2 ``` 然后,我们需要在配置文件中启用 Swagger: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi...

    Spring Boot整合Swagger2的完整步骤详解

    2. 配置Swagger2 创建一个配置类,使用`@Configuration`和`@EnableSwagger2`注解,然后通过`Docket`配置API的相关信息。例如: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean ...

    SpringBoot整合Swagger框架过程解析

    在SpringBoot项目中,我们需要创建一个配置类来配置Swagger框架的相关设置。下面是一个示例配置类: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket docket...

Global site tag (gtag.js) - Google Analytics