我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot怎么整合Swagger Api自动生成文档

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringBoot怎么整合Swagger Api自动生成文档

本篇内容主要讲解“SpringBoot怎么整合Swagger Api自动生成文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么整合Swagger Api自动生成文档”吧!

目录
  • 前言

  • 整合swagger api

    • 自定义配置信息

    • 简单使用

    • Swagger常用注解

      • Api标记

      • ApiOperation标记

      • ApiParam标记

      • ApiModel标记

      • ApiModelProperty标记

      • ApiIgnore标记

      • ApiImplicitParam标记

      • ApiImplicitParams标记

  • 总结

    前言

    一个好的可持续交付的项目,项目说明,和接口文档是必不可少的,swagger api 就可以帮我们很容易自动生成api 文档,不需要单独额外的去写,无侵入式,方便快捷大大减少前后端的沟通方便查找和测试接口提高团队的开发效率方便新人了解项目,剩余的时间就可以去约妹子啦

    整合swagger api

    这里我们自己去整合swagger api比较麻烦,要导入好几个包,有大神帮我们写好了轮子kinfe4j直接对应SpringBoot的启动项,而且在不影响原来使用功能上界面ui做了美化功能做了增强 我们直接整合这个就好了

    <!--api 文档-->        <dependency>            <groupId>com.github.xiaoymin</groupId>            <artifactId>knife4j-spring-boot-starter</artifactId>            <version>3.0.1</version>        </dependency>

    正如官网所说

    SpringBoot怎么整合Swagger Api自动生成文档

    kinfe4j官方文档点击这里

    自定义配置信息

    为我们为swagger配置更多的接口说明

    package cn.soboys.core.config;import cn.hutool.core.collection.CollUtil;import cn.soboys.core.ret.ResultCode;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.HttpMethod;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.builders.ResponseBuilder;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.service.Response;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import javax.annotation.Resource;import java.util.Arrays;import java.util.List;@Configurationpublic class SwaggerConfigure {    @Resource    private SwaggerProperty swaggerProperty;        @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.OAS_30).globalResponses(HttpMethod.POST, this.responseList()) //全局respons信息                .apiInfo(apiInfo(swaggerProperty))  //文档信息                .select()                //文档扫描                //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))  //有ApiOperation注解的controller都加入api文档                .apis(RequestHandlerSelectors.basePackage(swaggerProperty.getBasePackage())) //包模式                .paths(PathSelectors.any())                .build();    }    private ApiInfo apiInfo(SwaggerProperty swagger) {        return new ApiInfoBuilder()                //标题                .title(swagger.getTitle())                //描述                .description(swagger.getDescription())                //创建联系人信息 (作者,邮箱,网站)                .contact(new Contact(swagger.getAuthor(), swagger.getUrl(), swagger.getEmail()))                //版本                .version(swagger.getVersion())                //认证                .license(swagger.getLicense())                //认证协议                .licenseUrl(swagger.getLicenseUrl())                .build();    }        private List<Response> responseList() {        List<Response> responseList = CollUtil.newArrayList();        Arrays.stream(ResultCode.values()).forEach(errorEnum -> {            responseList.add(                    new ResponseBuilder().code(errorEnum.getCode().toString()).description(errorEnum.getMessage()).build()            );        });        return responseList;    }}

    抽出api文档配置模版信息为属性文件方便复用

    package cn.soboys.core.config;import lombok.Data;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringBootConfiguration;@Data@SpringBootConfigurationpublic class SwaggerProperty {        @Value("${swagger.basePackage}")    private String basePackage;        @Value("${swagger.title}")    private String title;        @Value("${swagger.description}")    private String description;        @Value("${swagger.version}")    private String version;        @Value("${swagger.author}")    private String author;        @Value("${swagger.url}")    private String url;        @Value("${swagger.email}")    private String email;        @Value("${swagger.license}")    private String license;        @Value("${swagger.licenseUrl}")    private String licenseUrl;}

    简单使用

    在你的Controller上添加swagger注解

    @Slf4j@Api(tags = "登录")public class LoginController {    private final IUsersService userService;    @PostMapping("/login")    @ApiOperation("用户登录")    public String login(@RequestBody UserLoginParams userLoginParams) {        Users u = userService.login(userLoginParams);        return "ok";    }}

    注意如启用了访问权限,还需将swagger相关uri允许匿名访问

    /swagger**webjarsv3doc.html

    重启服务,自带api文档访问链接为/doc.html界面如下:

    SpringBoot怎么整合Swagger Api自动生成文档

    相比较原来界面UI更加漂亮了,信息更完善功能更强大

    Swagger常用注解

    SpringBoot怎么整合Swagger Api自动生成文档

    Api标记

    用在请求的类上,表示对类的说明,也代表了这个类是swagger2的资源

    参数:

    • tags:说明该类的作用,参数是个数组,可以填多个。

    • value="该参数没什么意义,在UI界面上不显示,所以不用配置"

    • description = "用户基本信息操作"

    ApiOperation标记

    用于请求的方法上表示一个http请求的操作

    参数:

    • value用于方法描述

    • notes用于提示内容

    • tags可以重新分组(视情况而用)

    ApiParam标记

    用于请求方法上对请求参数,字段说明;表示对参数的添加元数据(说明或是否必填等)

    参数:

    • name–参数名

    • value–参数说明

    • required–是否必填

    ApiModel标记

    用于java实体类上表示对类进行说明,用于参数用实体类接收

    参数:

    • value–表示对象名

    • description–描述
      都可省略

    ApiModelProperty标记

    用于方法,字段; 表示对model属性的说明或者数据操作更改

    参数:

    1. value–字段说明

    2. name–重写属性名字

    3. dataType–重写属性类型

    4. required–是否必填

    5. example–举例说明

    6. hidden–隐藏

    @ApiModel(value="user对象",description="用户对象user")public class User implements Serializable{    private static final long serialVersionUID = 1L;     @ApiModelProperty(value="用户名",name="username",example="xingguo")     private String username;     @ApiModelProperty(value="状态",name="state",required=true)      private Integer state;      private String password;      private String nickName;      private Integer isDeleted;       @ApiModelProperty(value="id数组",hidden=true)      private String[] ids;      private List<String> idList;     //省略get/set}
    ApiIgnore标记

    用于请求类或者方法上,可以不被swagger显示在页面上

    ApiImplicitParam标记

    用于方法表示单独的请求参数

    ApiImplicitParams标记

    用于方法,包含多个 @ApiImplicitParam

    参数:

    1. name–参数名

    2. value–参数说明

    3. dataType–数据类型

    4. paramType–参数类型

    5. example–举例说明

      @ApiOperation("查询测试")  @GetMapping("select")  //@ApiImplicitParam(name="name",value="用户名",dataType="String", paramType = "query")  @ApiImplicitParams({  @ApiImplicitParam(name="name",value="用户名",dataType="string", paramType = "query",example="xingguo"),  @ApiImplicitParam(name="id",value="用户id",dataType="long", paramType = "query")})  public void select(){   }

    总结

    • 可以给实体类和接口添加注释信息

    • 接口文档实时更新

    • 在线测试

    • kinfe4j 在swagger API只做增强,不会改变原有任何使用,更多增加使用功能

    点击这里进入kinfe4j官网文档

    到此,相信大家对“SpringBoot怎么整合Swagger Api自动生成文档”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    SpringBoot怎么整合Swagger Api自动生成文档

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    SpringBoot怎么整合Swagger Api自动生成文档

    本篇内容主要讲解“SpringBoot怎么整合Swagger Api自动生成文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么整合Swagger Api自动生成文档”吧!
    2023-06-20

    SpringBoot是怎么自动生成API文档的

    这篇文章主要讲解了“SpringBoot是怎么自动生成API文档的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot是怎么自动生成API文档的”吧!前言在做项目的时候,如果项
    2023-06-20

    SpringBoot中怎么集成Swagger文档

    在SpringBoot中集成Swagger文档,可以通过以下步骤:添加Swagger依赖:在项目的pom.xml文件中添加Swagger的依赖:io.springfox
    SpringBoot中怎么集成Swagger文档
    2024-03-07

    SpringBoot使用swagger生成api接口文档的方法详解

    在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档,需要的可以了解一下
    2022-11-13

    Typescript中interface自动化生成API文档详解

    ypeScript的核心原则之一是对值所具有的结构进行类型检查,下面这篇文章主要给大家介绍了关于Typescript中interface自动化生成API文档的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-27

    django怎么自动生成接口文档

    Django没有内置的功能来自动生成接口文档,但是可以使用第三方工具来实现自动生成接口文档。以下是一些常用的自动生成接口文档的工具:Django Rest Swagger:这是一个为Django Rest Framework提供Swagg
    2023-10-23

    Babel怎么实现自动生成Attribute文档

    本篇内容主要讲解“Babel怎么实现自动生成Attribute文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Babel怎么实现自动生成Attribute文档”吧!1. 前言利用Babel自动
    2023-07-04

    怎么给ABAP类自动生成帮助文档

    本篇内容主要讲解“怎么给ABAP类自动生成帮助文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么给ABAP类自动生成帮助文档”吧!Social media 在SP0开发的时候,建了CL_SO
    2023-06-04

    springboot整合freemarker代码自动生成器的示例分析

    这篇文章给大家分享的是有关springboot整合freemarker代码自动生成器的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。技术架构页面是用 Vue ,element-ui开发;网络请求是 Axi
    2023-06-15

    使用java怎么自动生成数据库文档

    今天就跟大家聊聊有关使用java怎么自动生成数据库文档,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、引入pom.xml依赖