我有一个 Spring Boot 应用程序,其中的休息控制器定义如下。
如您所见,只有已弃用的端点显示在 UI 上,因为它首先出现在 java 代码中。 但是,我的要求是我需要这两个端点都显示在 UI 中。 Swagger 无法区分它们,因为唯一的区分因素是
Consumes
标签。
有办法实现吗?
类似的问题已经被问过here但没有回复,因此我在这里再次问这个问题。
附注已经尝试过人工智能助手,但他们无法提出可行的解决方案。
Swagger 不支持具有相同路径和方法的多个端点:
即使您有两个不同的版本(基于内容类型),两个端点也映射到相同的路径 (/home) 并使用相同的 HTTP 方法 (GET)。 Swagger 只能看到路径 + HTTP 方法的每个唯一组合的一个端点,导致它只注册其中之一(可能是第二个 newEndpoint)。 这是正常的,因为你没有指定两个端点之间的差异,所以它们都有 /Home 作为父路径,但你需要添加特定路径。
因此这取决于您的端点目的和实现逻辑。
根据您的情况,您可以尝试使用这个:
@RequestMapping(path = "/home", method = RequestMethod.GET, produces = "application/vnd.example.v1+json")
还有很多其他方法,但这是迄今为止最简单的一种。