首页 > 其他分享 >Springboot整合Swagger(二)

Springboot整合Swagger(二)

时间:2022-11-21 00:34:12浏览次数:53  
标签:springfox return Springboot Swagger documentation value 整合 import swagger

1、创建Springboot项目
2、引入swagger依赖

        <!--SpringBoot-starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!--swagger-UI页面-前后端分离中很好用-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

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

swagger-UI:是swagger提供的接口UI界面
swagger2:提供对应的注解,在项目中书写接口时,加上相应的注解,会自动生成接口UI界面

3、创建SwaggerConfig.java配置文件---配置swagger

package com.gao.swagger.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;


@Configuration
@EnableSwagger2 //开启swagger2,若启动类上添加了该注解,则配置类可以不添加
public class SwaggerConfig {

    /*创建swagger bean*/
    @Bean
    public Docket createRestApi() {
        /*
        * Docket是swagger全局配置对象
        * DocumentationType:指定文档类型为swagger2
        */
        return new Docket(DocumentationType.SWAGGER_2)
                // swagger信息
                .apiInfo(apiInfo())

                /*  配置是否开启swagger
                 * 是否开启 (true 开启  false隐藏。生产环境建议隐藏)
                 * 若为false,则浏览器不能访问
                 */
                .enable(true)

                /*
                * swagger 扫描包配置
                * select()获取Docket中的选择器,返回ApiSelectorBuilder构造选择器,如扫描扫描包的注解
                */
                .select()

                /* 指定扫描器扫描的规则(断言)
                * 扫描的路径包,设置basePackage会将包下的所有被@Api标记类的所有方法作为api
                *
                * requestHandlerSelectors:请求处理选择器
                * basePackage():扫描指定包下的所有接口
                * any():扫描所有的包
                * none():不扫描
                * withClassAnnotation():扫描指定类上的注解,参数是
                * withMethodAnnotation():扫描方法上的注解
                */
                .apis(RequestHandlerSelectors.basePackage("com.gao.swagger.controller"))

                /* --指定路径处理
                 * pathSelectors:路径选择器,过滤路径
                 * ang():选择所有路径
                 * none():都不选择
                 * ant():选择指定路径
                 * regex():正则表达式
                 */
                .paths(PathSelectors.any())
                .build();


    }

    // swagger文档信息
    private ApiInfo apiInfo() {

        // 作者信息
        Contact contact = new Contact(
                // 文档发布者的名称
                "gao",
                // 文档发布者的网站地址
                "https://XXX.XXXX.XXX",
                // 文档发布者的电子邮箱
                "[email protected]"
        );

        return new ApiInfoBuilder()
                //设置文档标题(API名称)
                .title("SpringBoot中使用Swagger2接口规范")
                //文档描述
                .description("接口文档说明")
                //服务条款URL
                .termsOfServiceUrl("http://localhost:8080/")
                //版本号
                .version("1.0.0")

                .build();
    }

}

4、启动项目,打开浏览器访问 UI界面

  http://localhost:8080/swagger-ui.html

5、书写测试接口

package com.gao.swagger.controller;


import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("userController")
@Api(value = "测试接口", tags = "用户管理相关的接口", description = "用户测试接口")
public class UserController {
    /**
     * 保存数据
     * @param 
     * @return
     */
    @PostMapping(value = "/save")
    //方法参数说明,name参数名;value参数说明,备注;dataType参数类型;required 是否必传;defaultValue 默认值
    @ApiImplicitParam(name = "user", value = "新增用户数据")
    //说明是什么方法(可以理解为方法注释)
    @ApiOperation(value = "添加用户", notes = "添加用户")
    public String saveUser(){
        return "保存成功";
    }

    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    @GetMapping(value = "/findById")
    @ApiOperation(value = "根据id获取用户信息", notes = "根据id查询用户信息")
    public String getUser(Integer id){
        return "获取成功";
    }

    /**
     * 删除
     * @param 
     * @return
     */
    @DeleteMapping(value = "/deleteById")
    @ApiOperation(value = "根据id删除数据", notes = "删除用户")
    public String delete(){
        return "删除成功";
    }



}

6、启动项目,并在浏览器输入http://localhost:8080/swagger-ui.html进行swagger-ui界面访问

 

 7、下一篇常用注解

 

标签:springfox,return,Springboot,Swagger,documentation,value,整合,import,swagger
From: https://www.cnblogs.com/Life-QX/p/16910127.html

相关文章

  • Swagger简介
    1、Swagger是什么?Swagger是一个规范且完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。2、Swagger能干什么在前后端分离开发的过程中,前端和......
  • SpringBoot使用@Async的总结!
    一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。之前有写过一篇文章叫做:异步编程利器:CompletableFuture在实际工作中也更加推荐使用CompletableFuture......
  • SpringBoot14(监听机制)
    一、java监听机制(麻烦、繁琐,不推荐)二、SpringBoot监听机制三、代码实现1-包的定义2-listener代码块1-MyApplicationContextInitializerMyApplicationCont......
  • Jenkins容器<二>---发布springboot项目 20221004
    一、Jenkins容器<->---通过docker安装 20221004 二、Jenkins容器<二>---发布springboot项目 20221004   1、系统配置      安装插件 ......
  • springboot创建可执行文件jar
    要创建可执行文件jar,我们需要将spring-boot-maven-plugin添加到我们的pom.xml中。要做到这一点,请在dependencies部分下方插入以下行:<build><plugins><plug......
  • SpringBoot日志框架LogBack
    logback记录器的属性依赖SpringBoot天生集成了logback日志框架,因此想要输出日志,根本不用再引入多余的依赖日志文件说明appender-为日志输出目的地,log4提供的ap......
  • ES教程-springboot整合ES
    1、springboot如何整合ES1、导入坐标(下面是老版本的es坐标官方已经不推荐使用)<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-b......
  • ssm整合
    1.mybatis层1.1、导入依赖包<!--https://mvnrepository.com/artifact/org.mybatis/mybatis--><dependency><groupId>org.mybatis</groupId>......
  • springboot+vue 前后端分离项目对 token 的无痛刷新
    前言最近在做一个系统时,使用了token令牌来进行前后端交互的权限认证。token一般用于前端向后端发起请求时的权限认证。用户登录自己的账号后,会得到一个token,放在每......
  • Springboot普通类获取运行时环境,获取运行时容器,获取Bean,等等获取运行时一切参数总结大
    文章目录​​获取ApplicationContext​​​​ApplicationContext有什么用​​​​获取ApplicationContext​​​​使用ApplicationContext​​​​获取Environment​​​​E......