SpringBoot整合Swagger2的示例

一、导入maven包 

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.9.2</version>
</dependency>
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>2.9.2</version>
</dependency>

二、添加工具类

@Configuration
@EnableSwagger2
public class SwaggerConfig {
  @Bean
  public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
        .pathMapping("/")
        .select()
        .apis(RequestHandlerSelectors.basePackage("com.nvn.controller"))
        .paths(PathSelectors.any())
        .build().apiInfo(new ApiInfoBuilder()
            .title("SpringBoot整合Swagger")
            .description("SpringBoot整合Swagger,详细信息......")
            .version("1.0")
            .build());
  }
}

三、添加注解

@RestController
@Api(tags = "用户管理相关接口")
@RequestMapping("/user")
public class UserController {

  @PostMapping("/")
  @ApiOperation("添加用户的接口")
  @ApiImplicitParams({
      @ApiImplicitParam(name = "username", value = "用户名", defaultValue = "李四"),
      @ApiImplicitParam(name = "address", value = "用户地址", defaultValue = "深圳", required = true)
  }
  )
  public RespBean addUser(String username, @RequestParam(required = true) String address) {
    return new RespBean();
  }

  @GetMapping("/")
  @ApiOperation("根据id查询用户的接口")
  @ApiImplicitParam(name = "id", value = "用户id", defaultValue = "99", required = true)
  public User getUserById(@PathVariable Integer id) {
    User user = new User();
    user.setId(id);
    return user;
  }
  @PutMapping("/{id}")
  @ApiOperation("根据id更新用户的接口")
  public User updateUserById(@RequestBody User user) {
    return user;
  }
}

四、注解说明

  • @Api注解可以用来标记当前Controller的功能。
  • @ApiOperation注解用来标记一个方法的作用。
  • @ApiImplicitParam注解用来描述一个参数,可以配置参数的中文含义,也可以给参数设置默认值,这样在接口测试的时候可以避免手动输入。
  • 如果有多个参数,则需要使用多个@ApiImplicitParam注解来描述,多个@ApiImplicitParam注解需要放在一个@ApiImplicitParams注解中。
  • @ApiImplicitParam注解中虽然可以指定参数是必填的,但是却不能代替@RequestParam(required = true),前者的必填只是在Swagger2框架内必填,抛弃了Swagger2,这个限制就没用了,所以假如开发者需要指定一个参数必填,@RequestParam(required = true)注解还是不能省略。

五、如果参数是一个对象,对于参数的描述可以放在实体类中。

@ApiModel
public class User {
  @ApiModelProperty(value = "用户id")
  private Integer id;
  @ApiModelProperty(value = "用户名")
  private String username;
  @ApiModelProperty(value = "用户地址")
  private String address;
  //getter/setter
}

六、效果

附:如果我们的Spring Boot项目中集成了Spring Security,那么如果不做额外配置,Swagger2文档可能会被拦截,此时只需要在Spring Security的配置类中重写configure方法,添加如下过滤即可:

@Override
public void configure(WebSecurity web) throws Exception {
  web.ignoring()
      .antMatchers("/swagger-ui.html")
      .antMatchers("/v2/**")
      .antMatchers("/swagger-resources/**");
}

以上就是SpringBoot整合Swagger2的示例的详细内容,更多关于SpringBoot整合Swagger2的资料请关注我们其它相关文章!

(0)

相关推荐

  • IDEA SpringBoot 项目配置Swagger2的详细教程

    原先前后端分离的api文档开启了前后端相互撕逼的对接之路 api更新不及时导致对接失败,以及存在测试不够方便,而swagger则很好的解决了这个问题 在项目中也经常用到swagger2,于是动手记录一下swagger2配置过程,希望能带来一点帮助. 在SpringBoot项目当中使用Swagger主要分为以下几步: 1.SpringBoot-web项目并添加pom.xml依赖 2.编写HelloController,测试成功运行 3.创建一个SwaggerConfig类,配置swagger-ui

  • springboot 配置使用swagger2操作

    swagger是一个功能强大的在线API文档的框架,提供了优雅的API在线文档的查阅和测试功能. 利用swagger2可以很方便的构建RESTful风格的API文档,在springboot中使用也非常方便,主要是在controller前配置添加注解就可以了,详细配置过程如下: 1. maven依赖包 使用目前最新版本为例,pom.xml添加的代码如下 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui

  • SpringBoot基于Swagger2构建API文档过程解析

    一.添加依赖 <!--SpringBoot使用Swagger2构建API文档的依赖--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <group

  • SpringBoot整合Swagger2实例方法

    在进行软件开发的时候免不了要写接口文档,这些文档需要明确写出接口的类型.请求的URL.传参和返回值格式等信息,用于和前端交互或者提供给测试进行接口测试.但是手写文档一方面带给我们很大的工作量,另一方面如果接口有变更则需要频繁修改并且发给相关的人,无形中增加了工作量.小编为大家介绍一个生成文档的工具Swagger,上手简单,学习成本低,非常适合开发SpringBoot项目,现在就跟着小编一起学习吧. 首先需要在pom文件中加入swagger2的依赖,依赖的jar包如下图所示. <dependenc

  • SpringBoot2.0集成Swagger2访问404的解决操作

    最近使用最新的SpringBoot2.0集成Swagger2的时候遇到一个问题,集成之后打开Swagger页面的时候出现404,后台提示找不到swagger-ui的页面. 于是我看了下项目依赖swagger的结构: 可以看到 swagger-ui.html 在META-INF/resources目录下,所以我们需要手动的将静态资源路径指向这里,在java中配置为: import org.springframework.context.annotation.Bean; import org.spr

  • SpringBoot整合Swagger2代码实例

    首先遵循SpringBoot的三板斧 第一步添加依赖 <!-- SwaggerUI 接口文档 http://{ip}:{prot}/swagger-ui.html --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>{version}</version> <

  • SpringBoot如何优雅地使用Swagger2

    前言 Spring Boot 框架是目前非常流行的微服务框架,我们很多情况下使用它来提供 Rest API.而对于 Rest API 来说很重要的一部分内容就是文档,Swagger 为我们提供了一套通过代码和注解自动生成文档的方法,这一点对于保证 API 文档的及时性将有很大的帮助.本文将使用 Swagger 2 规范的 Springfox 实现来了解如何在 Spring Boot 项目中使用 Swagger,主要包含了如何使用 Swagger 自动生成文档.使用 Swagger 文档以及 Sw

  • springboot swagger2注解使用的教程

    swagger2 注解整体说明  最近在使用Swagger的时候忘记了注解的用法,特此记录一下. @Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置" @ApiOperation:用在请求的方法上,说明方法的用途.作用 value="说明方法的用途.作用" notes="方法的备注说明" @ApiImplicit

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

    1. pom.xml中加入依赖 <dependency> <groupId>com.spring4all</groupId> <artifactId>swagger-spring-boot-starter</artifactId> <version>1.8.0.RELEASE</version> </dependency> 2. 在启动类(即带@SpringBootApplication这个注解的类)上添加@E

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

    你还在生产节点开放Swagger吗,赶紧停止这种暴露接口的行为吧. 学习目标 快速学会使用注解关闭Swagger2,避免接口重复暴露. 使用教程 禁用方法1:使用注解@Profile({"dev","test"}) 表示在开发或测试环境开启,而在生产关闭.(推荐使用) 禁用方法2:使用注解@ConditionalOnProperty(name = "swagger.enable", havingValue = "true") 

  • SpringBoot结合Swagger2自动生成api文档的方法

    首先在pom.xml中添加如下依赖,其它web,lombok等依赖自行添加 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.spri

随机推荐