Spring Boot 3.2.4 + Springdoc OpenAPI:“规范中没有定义操作!”在 Swagger UI 中

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

我正在开发 Spring Boot 应用程序(版本 3.2.4)并使用 Springdoc OpenAPI(版本 2.0.4)生成 API 文档。但是,当我打开 Swagger UI 时,我看到消息“规范中没有定义操作!”。

这是我的整个项目

以下是我的设置的相关详细信息:

pom.xml(与 Springdoc OpenAPI 相关的依赖项):

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

SetupController.java:

package blossom.reports_service.inbound;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import blossom.reports_service.model.ChallengeSummary;
import blossom.reports_service.model.ReportsService;

@RestController
@RequestMapping("/setup")
public class SetupController {

    private final ReportsService reportsService;

    @Autowired
    public SetupController(ReportsService reportsService) {
        this.reportsService = reportsService;
    }

    @PostMapping("/createChallengeSummary/{userId}")
    public ChallengeSummary createChallengeSummary(@PathVariable Long userId) {
        return reportsService.createChallengeSummary(userId);
    }
}

我已确保以下事项:

  1. 所有控制器都用@RestController注释。
  2. 包结构正确,主应用类位于根包中。
  3. 应用程序启动,没有任何错误。
  4. 通过 http://localhost:8080/swagger-ui/index.html 访问 Swagger UI。

尽管执行了这些步骤,Swagger UI 仍然显示“规范中没有定义操作!”。任何帮助或建议将不胜感激!

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

springdoc.packages-to-scan="blossom.reports_service"
application.properties

中删除这行代码

设置控制器的另一个更改,将注释

@Controller
更改为
@RestController
,因为 OpenAPI 无法识别
@Controller
注释

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