首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Spring Boot实战与进阶】整合Swagger3生成接口文档

【Spring Boot实战与进阶】整合Swagger3生成接口文档

作者头像
程序员云帆哥
发布2022-05-12 10:16:19
发布2022-05-12 10:16:19
7870
举报
文章被收录于专栏:程序员云帆哥程序员云帆哥

Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用。这个专栏将对Spring Boot框架从浅入深,从实战到进阶,不但我们要懂得如何去使用,还要去剖析框架源码,学习其优秀的设计思想。

汇总目录链接:【Spring Boot实战与进阶】学习目录

文章目录

一、引入依赖

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

代码语言:javascript
复制
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

二、配置类

代码语言:javascript
复制
@Configuration
@EnableOpenApi
public class Swagger3Config {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Restful API接口")
                .description("Swagger3接口文档")
                .version("1.0")
                .build();
    }
}

说明:

  • @EnableOpenApi:开启swagger功能(@EnableSwagger2在3.0被移除)

三、Controller测试类

代码语言:javascript
复制
@Api("TestController")
@RestController
public class TestController {
    @ApiOperation(value = "添加用户", notes = "添加用户")
    @PostMapping("/addUser")
    public void addUser() {
    }

    @ApiOperation(value = "获取用户信息", notes = "获取用户信息")
    @GetMapping("/getUser")
    public void getUser() {
    }
}

四、启动项目

访问地址:http://localhost:8080/swagger-ui/index.html

五、拓展知识

1、如何配置线上时关闭swagger?

代码语言:javascript
复制
# 是否开启swagger,线上环境一般是需要关闭的
springfox:
  documentation:
    auto-startup: false

2、常用的配置注解

Annotation

Attribute

Target Property

Description

ApiModelProperty

value

ModelProperty#description

@ApiModelProperty(value="${property1.description}")

ApiModelProperty

description

ModelProperty#description

@ApiModelProperty(notes="${property1.description}")

ApiParam

value

Parameter#description

@ApiParam(value="${param1.description}"

ApiImplicitParam

value

Parameter#description

@ApiImplicitParam(value="${param1.description}")

ApiOperation

notes

Operation#notes

@ApiOperation(notes="${operation1.description}")

ApiOperation

summary

Operation#summary

@ApiOperation(value="${operation1.summary}")

RequestParam

defaultValue

Parameter#defaultValue

@RequestParam(defaultValue="${param1.defaultValue}")

RequestHeader

defaultValue

Parameter#defaultValue

@RequestHeader(defaultValue="${param1.defaultValue}")

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 文章目录
  • 一、引入依赖
  • 二、配置类
  • 三、Controller测试类
  • 四、启动项目
  • 五、拓展知识
    • 1、如何配置线上时关闭swagger?
    • 2、常用的配置注解
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档