Spring boot 3 和 springdoc-openapi-starter-webmvc-ui 缺少路径变量输入

问题描述 投票:0回答:1

我正在使用 Spring Boot 进行练习来检查版本更改。 我创建了一个简单的 API 并实现了 spring swagger 来进行 API 测试。 缺少的是不会出现在 swagger 界面中用于输入值的可变路径参数。 根据文档,只需要定义RestController类和Maven依赖并测试即可,但事实并非如此。

@RestController
@RequestMapping("/customer")
public class CustomerRestController {
    
    @Autowired
    CustomerRepository customerRepository;
    
    @GetMapping()
    public List<Customer> customers() {
        return customerRepository.findAll();
    }
    
    @GetMapping("/{id}")
    public Customer get(@PathVariable Long id) {
        return customerRepository.findById(id).orElse(new Customer());
    }
    
}

我尝试使用 2.1.0、2.2.0 和 2.3.0。同样的结果。

  <dependency>
     <groupId>org.springdoc</groupId>
     <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
     <version>2.1.0</version>
  </dependency>

项目结构比较复杂,但编译完整个 paymentchain-parent 项目后,可以运行独立的客户项目,访问 url 即可看到结果 http://localhost:8081/swagger.html

https://github.com/argades/spring-boot-ms-test

spring openapi swagger-ui spring-boot-3
1个回答
0
投票

我找到了解决方案。 将这个 ("id") 添加到 PathVariable 注释中,将输入显示到 ui

@GetMapping("/{id}")
public Customer get(@PathVariable("id") Long id) {
     return customerRepository.findById(id).orElse(new Customer());
}

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.