栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot2自动生成接口文档,swagger3的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot2自动生成接口文档,swagger3的使用

Swagger介绍

  • 基于 OpenAPI 规范(OpenAPI Specification,OAS)构建的开源接口文档自动生成工具,可以让开发人员快速设计、构建、记录以及使用 Rest API

  • Swagger 主要包含了以下三个部分:

  • Swagger Editor:基于浏览器的编辑器,我们可以使用它编写我们 OpenAPI 规范。
  • Swagger UI:它会将我们编写的 OpenAPI 规范呈现为交互式的 API 文档,后文我将使用浏览器来查看并且操作我们的 Rest API。
  • Swagger Codegen:它可以通过为 OpenAPI(以前称为 Swagger)规范定义的任何 API 生成服务器存根和客户端 SDK 来简化构建过程。

使用介绍

1.SpringBoot添加pom文件依赖

  • 
          io.springfox
          springfox-boot-starter
          3.0.0
    

    2.application.properties 配置文件增加配置

  • #1024shop 是项目名
    spring.application.name=1024shop
    ​
    # ===== 自定义swagger配置 ===== #
    swagger.enable=true
    swagger.application-name= ${spring.application.name}
    swagger.application-version=1.0
    #swagger.application-description=1024shop电商平台管理后端接口文档
    swagger.application-description=1024shop api info 

    3.创建配置类

  • 
    import io.swagger.annotations.ApiOperation;
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.stereotype.Component;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.oas.annotations.EnableOpenApi;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    
    @Component
    @EnableOpenApi
    @ConfigurationProperties("swagger")
    @Data
    public class SwaggerConfiguration{
    
    
        
        private Boolean enable;
    
        
        private String applicationName;
    
        
        private String applicationVersion;
    
        
        private String applicationDescription;
    
        @Bean
        public Docket docket() {
            return new Docket(DocumentationType.OAS_30)
                    .pathMapping("/")
    
                    // 定义是否开启swagger,false为关闭,可以通过变量控制,线上关闭
                    .enable(enable)
    
                    //配置api文档元信息
                    .apiInfo(apiInfo())
    
                    // 选择哪些接口作为swagger的doc发布
                    .select()
    
                    //apis() 控制哪些接口暴露给swagger,
                    // RequestHandlerSelectors.any() 所有都暴露
                    // RequestHandlerSelectors.basePackage("net.xdclass.*")  指定包位置
                    // withMethodAnnotation(ApiOperation.class)标记有这个注解 ApiOperation
                    .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
    
                    .paths(PathSelectors.any())
    
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title(applicationName)
                    .description(applicationDescription)
                    //这里填接口文档的作者信息
                    .contact(new Contact("夕颜", "https://x.bfb6.cn", "3010147651@qq.com"))
                    .version(applicationVersion)
                    .build();
        }
    
    }
     到这里基本配置就ok了

  • 注意:如果你是springboot2.6.0以上,完成上方操作后运行会报错

  • 解决方法 => application.properties 配置文件增加配置:spring.mvc.pathmatch.matching-strategy=ant_path_matcher

到这里就完全ok了  

运行后浏览器访问:http://localhost:8081/swagger-ui/index.html#/

 这个端口8081是springboot配置的项目端口


如果完成以上操作,并且接口文档链接可以访问,说明配置已经ok了,现在介绍怎么使用

在使用的类上方加 @Api注解,接口上方加@ApiOperation即可给对应的接口生成接口文档

 

 

各种情况代码如下,请看注释



import Util.JsonData;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;

@RestController
@RequestMapping("api/v1/user")
@Api(tags = "用户模块",value = "用户UserController")
public class UserController {

    //@ApiOperation 接口配置,用在方法上,描述接口方法
    //无参数get请求
    @ApiOperation("分页用户列表")
    @GetMapping("list")
    public JsonData list(){
        return JsonData.buildSuccess();
    }

    //@ApiParam 方法参数配置,用在入参上面,描述参数
    //有参数post请求,参数加@ApiParam
    @ApiOperation("用户登录")
    @PostMapping("login")
    public JsonData login(
            @ApiParam(name = "phone", value = "手机号",example = "13888888888")
            @RequestParam("phone") String phone,

            @ApiParam(name = "pwd", value = "密码",example = "123456")
            @RequestParam("pwd")String pwd){

        return JsonData.buildSuccess();
    }

    //restful例子
    @ApiIgnore // 忽略此接口,不生成对应文档
    @ApiOperation("删除用户")
    @DeleteMapping("/delete/{id}")
    public JsonData  deleteById(@PathVariable int id) {
        return JsonData.buildSuccess();
    }


}

 点击运行即可把对应接口生成接口文档,接下来刷新接口文档地址

 

 对应的接口就自动生成接口文档了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号