(三) spring boot 之使用Swagger配置详解

为什么我会要专门在 springboot 系列中专门写一篇来介绍 swagger 呢,主要是因为我在日常的工作中真的是受够了这些不规范的接口,每次看自己负责的项目中的接口,心里都会默念一万句MMP。

所以我要写一篇博客来介绍 swagger 的配置详细解释,博文中有写的不对的地方希望大家指出,如果有什么好的想法也可以告诉我再加上。

还是要说一下,这些注解没有可以吗?
完全可以,但是为了你自己看的更加清楚,也为了别人看的更加清楚,当然更为了你自己的人身安全,还是建议写上。

springboot 配置 swagger 页面

(一) SpringBoot 项目初始化 + 配置swagger页面

swagger 页面的标题配置

页面的可配置项有很多,包括标题、版本、姓名、个人网站、email等等

值得注意的是一定要记得添加的三个注解
@Configuration 将swagger页面配置到项目的加载中
@EnableSwagger2 开启swagger页面的使用
@Bean 将swagger页面的信息加载到Bean工厂中

package com.banana.demo.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
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    // 配置swagger页面的头部
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Banana's SpringBoot APIs")            // 配置页面的标题
                .description("这里是Banana的swagger页面")      // 配置页面的简介
                .contact(new Contact("Banana",          // 配置页面联系,包括姓名,url,email
                        "https://blog.csdn.net/qq1515312832",
                        "dlt1997@outlook.com"))
                .version("1.0")                               // 配置页面的版本
                .build();
    }
}

这里配置好之后我们的页面上就会显示出来我们所需要的信息,如下
在这里插入图片描述

对 Controller 添加注解

对 Controller 类添加注解

首先,我们可以对整个 Controller 添加注解,对当前的 Controller 做一个注释
在这里插入图片描述
对应的页面则是这样的,对应的Controller会显示为我们所需要的文字
在这里插入图片描述

对 Controller 类中的接口添加注解

没有参数的接口

在这里插入图片描述
使用@ApiOperation注解来对当前的接口做一个注释,value为当前接口的简述,notes为更为详细的叙述
在这里插入图片描述

有参数,但是没有在 uri 里的接口

在这里插入图片描述
这类的接口是有参数的,它的参数会自动拼接到url中传入进来,后端可以接收到,我们访问的url就会如下这样,userName就会拼接到url的后方

http://localhost:8088/user/getUserListByName?userName=1

我们在swagger页面配置以后,参数就会显示出来
name是参数的名称
value是参数的含义
dataType是参数的类型
required是参数是否必须
配置好就会显示如下界面:
在这里插入图片描述

uri中含有参数的接口

在这里插入图片描述
这个时候就会使用@PathVariable注解来标识参数,这个注解的适用场景是这个参数一定要在上面的uri中含有才可以,这样才能识别到参数,否则这个接口在运行时就会直接报错

参数是实体的接口

有特殊的情况,我们的参数中有实体,也可以当作json,所我们需要保证在swagger页面中比较好用,我们的实体都是一样的,但是我们把这些实体的模板自动化的加载出来就可以不用再去手动输入了。

所以我们就需要加@ApiParam的注解,来保证可以自动化的添加出来需要传入的实体。

@RequestBody注解的含义是要从请求体中获取到当前的参数来进行赋值。
在这里插入图片描述
在swagger页面我们可以获得的配置就会变成这样,我们的参数中就会获得到我们需要的实体的参数,不需要再去重新写了,同时我们也可以保留我们所需要的,删去多余的,方便高效
在这里插入图片描述

对实体添加swagger注解

对于实体,我们可以添加@ApiModeal注解,来标识此实体是用于何处

对于实体中的参数,我们也可以标识出属性含义,使用@ApiModelProperty

package com.banana.demo.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel(value = "User:用户表")
public class User {
    @ApiModelProperty("用户 id")
    private String id;
    @ApiModelProperty("用户 姓名")
    private String user_name;
    @ApiModelProperty("用户 密码")
    private String user_password;

    public User() {
    }

    public User(String id, String user_name, String user_password) {
        this.id = id;
        this.user_name = user_name;
        this.user_password = user_password;
    }
}

在swagger页面中的体现则如下
在这里插入图片描述

推荐阅读

@RequestParam,@PathParam,@PathVariable 等注解区别

@ResponseBody使用须知

本系列文章


Banana的SpringBoot系列博客

(一) SpringBoot 项目初始化 + 配置swagger页面

(二) SpringBoot 整合 MyBatis-plus

(三) SpringBoot之使用Swagger配置详解

(四) spring boot 多环境配置

(五) spring boot 配置使用 redis

番外篇

idea配置swagger页面自动启动

Spring Boot是一个开源的Java开发框架,而Swagger是一个用于构建、发布、文档化和管理API的工具。下面详细介绍如何在Spring Boot中整合Swagger。 首先,你需要在pom.xml文件中添加Swagger的依赖项。在<dependencies>标签中添加以下代码: ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.10.5</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.10.5</version> </dependency> ``` 然后,你需要在Spring Boot配置类中添加相关的注解和配置。创建一个SwaggerConfig.java文件,添加以下代码: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("your.package.name")) .paths(PathSelectors.any()) .build(); } @Bean public UiConfiguration uiConfig() { return new UiConfiguration(null, "list", "alpha", "schema", UiConfiguration.Constants.DEFAULT_SUBMIT_METHODS, false, true, 60000L); } } ``` 在上面的代码中,你需要将"your.package.name"替换为你的应用程序的包名。这将扫描该包下的所有控制器,生成API文档。 接下来,你可以启动你的Spring Boot应用程序,并访问"http://localhost:8080/swagger-ui.html"来查看生成的API文档。你将看到所有的控制器和它们的方法以及相关的参数和注释。 如果你想修改API的文档信息,你可以使用Swagger中的注解来添加说明和标注。例如,你可以在控制器的方法上添加@ApiOperation注解来描述该方法的作用。 综上所述,将Swagger整合到Spring Boot中是很简单的。你只需要添加依赖项,配置SwaggerConfig类,然后访问Swagger UI来查看生成的API文档。同时,你可以使用Swagger注解来进一步完善API文档。希望这个教程可以帮助你理解如何在Spring Boot使用Swagger
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Geek-Banana

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值