当前位置: 代码网 > it编程>编程语言>Java > SpringBoot3使用Swagger3的示例详解

SpringBoot3使用Swagger3的示例详解

2024年11月27日 Java 我要评论
项目中的后端接口进行简单的前端展示swagger是一个用于设计、构建、文档化和使用restful web服务的开源工具。swagger3是swagger的最新版本,它提供了许多新功能和改进。swagg

项目中的后端接口进行简单的前端展示

swagger是一个用于设计、构建、文档化和使用restful web服务的开源工具。swagger3是swagger的最新版本,它提供了许多新功能和改进。

swagger在springboot3中的引入方法发生了改变,网上大部分还是springboot2的版本

springboot版本3.2.4

一、依赖引入

用maven构建一个springboot3的项目,在依赖中引入,在pom.xml中添加

<dependency>
            <groupid>org.springdoc</groupid>
            <artifactid>springdoc-openapi-starter-webmvc-ui</artifactid>
            <version>2.0.4</version>
</dependency>

版本也可以使用新版,springdoc-openapi网站链接

二、快速启动

1.在application.yml中配置

# swagger-ui custom path
springdoc:
  swagger-ui:
    path : /swagger-ui.html

2.或者properties文件,则配置

代码如下(示例):

# swagger-ui custom path
springdoc.swagger-ui.path=/swagger-ui.html

3.启动项目访问swagger

访问http://localhost:9090/swagger-ui/index.html#/
其中的9090 改成你项目后端使用的端口,注意不能省略后面的index.html

三、使用注解标注接口

swagger配置文件

package com.sumo.ipd.config;
import io.swagger.v3.oas.models.openapi;
import io.swagger.v3.oas.models.info.info;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
@configuration
public class swagger3config {
    @bean
    public openapi springopenapi() {
        // 访问路径:http://localhost:9090/swagger-ui/index.html
        return new openapi().info(new info()
                .title("springdoc api")
                .description("springdoc simple application")
                .version("0.0.1"));
    }
}

swagger 注解迁移

swagger2 和 swagger3 使用的是完全不同的两套注解,所以原本使用 swagger2 相关注解的代码页需要完全迁移,改为使用 swagger3 的注解。

swagger2swagger3
@api@tag
@apioperation@operation
@apiimplicitparams@parameters
@apiimplicitparam@parameter
@apimodel@schema
@apimodelproperty@schema
@apiresponses@apiresponses
@apiresponse@apiresponse
@apiignore@hidden 或者 其他注解的 hidden = true 属性

举例五种常用

@api

swagger2 代码

@api(value = "用户接口", tags = "usercontroller")

swagger3 代码

@tag(name = "usercontroller", description = "用户接口")

@apioperation

swagger2 代码

@apioperation(value = "查询用户数据")

swagger3 代码

@operation(description = "查询用户数据")

@apiimplicitparam

swagger2 代码

@apiimplicitparams({
     @apiimplicitparam(name = "currentpage", value = "当前页码", datatypeclass = integer.class, required = true),
     @apiimplicitparam(name = "size", value = "当前页大小", defaultvalue = "10", datatypeclass = integer.class),
     @apiimplicitparam(name = "queryuser", value = "用户查询条件", datatypeclass = user.class)
})

swagger3 代码

@parameters({
    @parameter(name = "currentpage", description = "当前页码", required = true),
    @parameter(name = "size", description = "当前页大小", example = "10"),
    @parameter(name = "queryuser", description = "用户查询条件")
})

@apimodel

swagger2 代码

@apimodel(value = "用户信息实体类")

swagger3 代码

@schema(name = "用户信息实体类")

@apimodelproperty

swagger2 代码

@apimodelproperty(value = "用户名称")

swagger3 代码

@schema(name = "用户名称")

使用示例

package com.sumo.ipd.controller;
import com.sumo.ipd.annotation.buslog;
import com.sumo.ipd.entity.department;
import com.sumo.ipd.entity.user;
import com.sumo.ipd.enums.sex;
import com.sumo.ipd.enums.userstatus;
import com.sumo.ipd.service.departmentservice;
import com.sumo.ipd.service.userservice;
import com.sumo.ipd.utils.excelutil;
import com.sumo.ipd.utils.pwdutil;
import com.sumo.ipd.vo.logintoken;
import com.sumo.ipd.vo.r;
import io.swagger.v3.oas.annotations.operation;
import io.swagger.v3.oas.annotations.tags.tag;
import jakarta.annotation.resource;
import jakarta.servlet.http.httpsession;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.multipartfile;
import java.util.*;
@restcontroller
@requestmapping("user")
@crossorigin
@tag(name = "usercontroller", description = "用户接口")
public class usercontroller {
    @resource
    userservice userservice;
    @resource
    departmentservice departmentservice;
    /**
     * 用户注册
     *
     * @param registeruser
     * @return
     */
    @operation(description = "用户注册")
    @postmapping("register")
    public r register(@requestbody user registeruser) {
        if (userservice
                .query()
                .eq(user.col_certificateno, registeruser.getcertificateno())
                .count() > 0) {
            return r.builder().code(0).message("用户已存在!").build();
        } else {
            userservice.save(registeruser);
            return r.builder().code(200).message("注册成功!请等待组织管理员审核...").build();
        }
    }
}

到此这篇关于springboot3使用swagger3的文章就介绍到这了,更多相关springboot3使用swagger3内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com