Swagger2配置(2024.9.13)

我的springboot版本是2.7.3

首先引入依赖

       <!--swagger2接口文档依赖-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>3.0.3</version>
        </dependency>

        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.6.15</version> <!-- 版本根据你的需求 -->
        </dependency>

        <!--swagger2接口文档依赖-->

然后在application.yml文件上配置

spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

最后配置 swagger文件


import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

@Configuration
@EnableSwagger2
public class WebMvcConfiguration implements WebMvcConfigurer {

    @Bean
    public Docket userDocket() {
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("后台管理系统 - 用户管理API")
                .version("2.0")
                .description("用户管理相关API")
                .build();
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .groupName("用户管理")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.hmdp.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    @Bean
    public Docket orderDocket() {
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("后台管理系统 - 订单管理API")
                .version("2.0")
                .description("订单管理相关API")
                .build();
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .groupName("订单管理")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.hmdp.controller"))
                .paths(PathSelectors.ant("/order/**"))
                .build();
    }


    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

然后是controller层


import com.hmdp.dto.LoginFormDTO;
import com.hmdp.dto.Result;
import com.hmdp.dto.UserDTO;
import com.hmdp.entity.UserInfo;
import com.hmdp.service.IUserInfoService;
import com.hmdp.service.IUserService;
import com.hmdp.utils.UserHolder;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@Api(tags = "用户管理")
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {

    @Resource
    private IUserService userService;

    @Resource
    private IUserInfoService userInfoService;

    @PostMapping("code")
    @ApiOperation(value = "发送短信验证码", notes = "通过手机号发送短信验证码")
    public Result sendCode(@RequestParam("phone") String phone) {
        return null;
    }

    @PostMapping("/login")
    @ApiOperation(value = "用户登录", notes = "用户通过手机号和验证码登录")
    public Result login(@RequestBody LoginFormDTO loginForm){
        return null;
    }

    @GetMapping("/me")
    @ApiOperation(value = "获取当前用户信息", notes = "获取当前登录用户的信息")
    public Result me() {
        UserDTO userDTO = UserHolder.getUser();
        if (userDTO == null) {
            return Result.fail("未登录!");
        }
        return Result.ok(userDTO);
    }

    @PostMapping("/logout")
    @ApiOperation(value = "用户登出", notes = "用户退出登录")
    public Result logout(){
        return Result.fail("功能未完成");
    }

    @GetMapping("/info/{id}")
    @ApiOperation(value = "获取用户详细信息", notes = "根据用户ID获取用户的详细信息")
    public Result info(@PathVariable("id") Long userId){
        UserInfo info = userInfoService.getById(userId);
        if (info == null) {
            return Result.ok();
        }
        info.setCreateTime(null);
        info.setUpdateTime(null);
        return Result.ok(info);
    }
}

我的端口号是:8081

所以配置好直接访问:

http://localhost:8081/doc.html#/home

可以看到界面

配置完成 记得这是swagger2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值