springboot整合--swagger2(代码片段)

闲言_ 闲言_     2023-02-28     240

关键词:

1.导入依赖

 <!--web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--springboot测试依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--Swagger依赖-->
        <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>
        <!--lombox 插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

2.创建Swagger配置类

package cn.bloghut.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.VendorExtension;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

/**
 * @Classname SwrggerConfig
 * @Description TODO
 * @Date 2021/12/16 15:11
 * @Created by 闲言
 */
@EnableSwagger2
@Configuration
public class SwaggerConfig 
    /**
     * 配置Swagger docket 的 bean 例
     * @return
     */
    @Bean
    public Docket docket()
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()//RequestHandlerSelectors 配置要扫描解接口的方式
                //basePackage 指定要扫描的包
                //any():扫描全部
                //none():不扫码
                //withClassAnnotation:扫描类上的注解,参数是注解的反射对象
                //withMethodAnnotation:扫描方法上的注解
                //withClassAnnotation(RestController.class) 只会扫描类上有RestController 注解的类
                .apis(RequestHandlerSelectors.basePackage("cn.bloghut.controller"))
                //paths()   过滤路径
                .paths(PathSelectors.ant("/**"))
                .build();
    

    /**
     * 单独抽取出来
     * @return
     */
    public ApiInfo apiInfo()
    
        Contact contact = new Contact("闲言","http://www.bloghut.cn","1765736057@qq.com");

        return new ApiInfo(
                "闲言的Swagger Api 文档",
                "即使再小的帆也能远航",
                "v1.0",
                "http://www.bloghut.cn",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList<VendorExtension>());

    



3.创建实体类

/**
 * @Classname User
 * @Description 老师实体类
 * @Date 2021/12/16 15:29
 * @Created by 闲言
 */
@Data
@ApiModel("老师实体类")
@Api("注释信息")
public class User 
    @ApiModelProperty("用老师D")
    private int id;
    @ApiModelProperty("老师名")
    private String name;


4.编写控制器

/**
 * @Classname TeacherController
 * @Description 老师控制器
 * @Date 2021/12/16 15:19
 * @Created by 闲言
 */
@RestController
@RequestMapping("teacher")
public class TeacherController 

    @GetMapping("findAll")
    @ApiOperation("方法注释查询所有老师方法")
    public Object findAll()
        return "Hello SpringBoot!";
    

    @PostMapping("add")
    @ApiOperation("方法注释添加所有老师方法")
    public Object add(@ApiParam("用户")User user)
        return "Hello SpringBoot!";
    

    @PutMapping("update")
    @ApiOperation("方法注释修改所有老师方法")
    public Object update()
        return "Hello SpringBoot!";
    

    @DeleteMapping("delete")
    @ApiOperation("方法注释删除所有老师方法")
    public Object delete()
        return "Hello SpringBoot!";
    


UserController和StudentController未展示


5.测试

1.访问地址

http://localhost/swagger-ui.html

注意:这里我改了端口为80,所以不用显示输入端口


2.跳转到首页

3.查看TeacherController的信息

4.查看add方法

5.完结,主要的代码还是在Swagger配置,其他都是加注解就行了

springboot整合swagger2

  手写Api文档的几个痛点:文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。接口返回结果不明确不能直接在线测试接口,通常需要使用工具,比如postman接口文档太多,不好管理  Swagger也就是... 查看详情

springboot整合swagger2搭建api在线文档

...阅和测试功能。利用Swagger2很容易构建RESTful风格的API,在SpringBoot中集成Swagger2,步骤如下。1.引入依赖<!--Swagger2--><dependency><groupId> 查看详情

springboot整合swagger2

SpringBoot整合Swagger2相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。手写Api文档的几个痛点:文档需... 查看详情

springboot整合swagger2框架

一:什么是SwaggerSwagger是一款通过我们添加的注解来对方法进行说明,来自动生成项目的在线api接口文档的web服务。二:添加Swagger2依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><ve 查看详情

springboot2整合swagger2-plus

目录一.整合swagger21.加依赖2.写配置3.常用注解:4.演示demo5.实际效果查询新增登录二.整合swagger2-plus1.加依赖2.写配置3.实际应用4.最终效果新增登录一.整合swagger21.加依赖<!--引入swagger2--><dependency><groupId>io.springfox</gr... 查看详情

springboot整合--swagger2(代码片段)

...tId>spring-boot-starter-web</artifactId></dependency><!--springboot测试依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--Swagge... 查看详情

springboot整合swagger2使用教程

1.引入依赖<!--依赖管理--><dependencies><dependency><!--添加Web依赖--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>< 查看详情

企业级springboot落地:swagger2整合并不是那么随便(代码片段)

在前后联调时,一个高质量的接口文档工具是必不可少的。否则就会出现前后台人员不停的来回沟通的现象,浪费大量的时间。在大多数企业的接口文档使用的都是swaager,可能唯一的缺陷就是ui样式不是特别给力。但... 查看详情

[idea]springboot整合swagger2实现crud

一:创建SpringBoot,在pom.xml文件中加入jar包  <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.8.0</version></dependenc 查看详情

springboot整合swagger2自动生成restfulapi文档

1)首先编辑pom.xml添加依赖<dependency>  <groupId>io.springfox</groupId>  <artifactId>springfox-swagger2</artifactId>  <version>2.9.2</version></dependency><de 查看详情

springboot整合swagger2+knife4j

参考技术A前言:前面文件已经发过swagger2的整合教程SpringBoot整合swagger,本文主要是介绍knife4j。Knife4j是为JavaMVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并且功... 查看详情

spring集成swagger2,提供restfulapi

...绍RESTfulAPI的重磅好伙伴Swagger2,它可以轻松的整合到SpringBoot中,并与SpringMVC程序配合组织出强大RESTfulAPI文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整... 查看详情

一分钟完成springboot项目整合swagger2实现自动生成接口文档

...但本人认为还是利大于弊的。接下来我们将Swagger2整合到springboot项目中,并用swagger-bootstrap-ui对Swagger2进行界面美化,废话不多说,我们开始。。。在pom.xml中导入在application.yml中设置swagger2是否开启的开关,关闭后接口文档被关... 查看详情

springboot1.5.4集成swagger2构建restfulapi(十八)

上一篇博客地址:springboot1.5.4整合rabbitMQ(十七)1      SpringBoot集成Swagger2构建RESTfulAPI文档1.1 Swagger2简介Swagger2官网:http://swagger.io/由于SpringBoot能够快速开发、便捷部署等特性,相信有很大一部分SpringBoo 查看详情

springboot整合swagger,方便后端测试

参考技术A用Swagger能够在后端写好接口后进行测试,测试过程非常方便。Swagger是一个用于生成、描述和调用RESTful接口的Web服务。通俗的来讲,Swagger就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和... 查看详情

软件工程应用与实践——swagger2搭建(代码片段)

...f0c;单独测试的缺点。二、搭建swagger2由于本项目后端使用SpringBoot,而swagger2可以快速整合到SpringBoot项目中。在本项目中,成功利用Springboot整合swagger2。引入依赖搭建Swagger2需要添加相关的依赖,添加了两个依赖ÿ 查看详情

shiro:整合swagger2时需要放行的资源(代码片段)

filterMap.put("/swagger-ui.html","anon");filterMap.put("/swagger-resources/**","anon");filterMap.put("/v2/**","anon");filterMap.put("/webjars/**","anon");  查看详情

springboot集成swagger2生成api接口文档(代码片段)

SpringBoot2.3.0集成Swagger2引入Swagger2相应的依赖入门示例SpringBoot2集成Swagger2后启动报错结语背景:最近在工作中发现,已经多次发现后台开发人员提供的接口协议和实际的业务代码不统一。这些现象往往都是因为开发人员在... 查看详情