当同一类型的多个端点具有不同的 Accept 标头值时,仅显示一个端点

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

我有一个 Spring Boot 应用程序,其中的休息控制器定义如下。

enter image description here

生成的 Swagger API 文档看起来像这样。 enter image description here

如您所见,只有已弃用的端点显示在 UI 上,因为它首先出现在 java 代码中。 但是,我的要求是我需要这两个端点都显示在 UI 中。 Swagger 无法区分它们,因为唯一的区分因素是

Consumes
标签。

有办法实现这个吗?

类似的问题已经被问过here但没有回复,因此我在这里再次问这个问题。

附注已经尝试过人工智能助手,但他们无法提出可行的解决方案。

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

Swagger 不支持具有相同路径和方法的多个端点:

即使您有两个不同的版本(基于内容类型),两个端点也映射到相同的路径 (/home) 并使用相同的 HTTP 方法 (GET)。 Swagger 只能看到路径 + HTTP 方法的每个唯一组合的一个端点,导致它只注册其中之一(可能是第二个 newEndpoint)。 这是正常的,因为你没有指定两个端点之间的差异,所以它们都有 /Home 作为父路径,但你需要添加特定路径。

因此这取决于您的端点目的和实现逻辑。

根据您的情况,您可以尝试使用这个:

@RequestMapping(path = "/home", method = RequestMethod.GET, produces = "application/vnd.example.v1+json")

还有很多其他方法,但这是迄今为止最简单的一种。

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