在Spring Boot中隐藏Swagger文档中的端点

2023/05/12

1. 概述

在创建Swagger文档时,我们经常需要隐藏端点以免暴露给最终用户,最常见的情况是端点尚未准备好。此外,我们可能有一些我们不想公开的私有端点。

在这篇简短的文章中,我们将了解如何从Swagger API文档中隐藏端点。为此,我们需要在控制器类中使用一些注解。

2. 使用@ApiIgnore隐藏端点

@ApiIgnore注解允许我们隐藏端点,让我们在控制器中为端点添加一下注解:

@ApiIgnore
@ApiOperation(value = "This method is used to get the author name.")
@GetMapping("/getAuthor")
public String getAuthor() {
    return "Umang Budhwar";
}

3. 使用@ApiOperation隐藏端点

或者,我们可以使用@ApiOperation隐藏单个端点

@ApiOperation(value = "This method is used to get the current date.", hidden = true)
@GetMapping("/getDate")
public LocalDate getDate() {
    return LocalDate.now();
}

请注意,我们需要将hidden属性设置为true以使Swagger忽略此端点。

4. 使用@ApiIgnore隐藏所有端点

尽管如此,有时我们需要隐藏控制器类的所有端点,我们可以通过使用@ApiIgnore注解标注控制器类来实现这一点:

@ApiIgnore
@RestController
public class RegularRestController {

}

需要注意的是,这将从文档中隐藏控制器本身

5. 使用@Hidden隐藏端点

如果我们使用的是OpenAPI v3,我们可以使用@Hidden注解隐藏端点:

@Hidden
@ApiOperation(value = "This method is used to get the author name.")
@GetMapping("/getAuthor")
public String getAuthor() {
    return "Umang Budhwar";
}

6. 使用@Hidden隐藏所有端点

同样,我们可以使用@Hidden标注控制器以隐藏所有端点:

@Hidden
@RestController
public class RegularRestController {
    // regular code
}

这也将从文档中隐藏控制器。

注意:我们只能在使用OpenAPI时使用@Hidden,Swagger v3中对该注解的支持仍在进行中

7. 总结

在本教程中,我们了解了如何从Swagger文档中隐藏端点,并讨论了如何隐藏单个端点以及控制器类的所有端点。

与往常一样,本教程的完整源代码可在GitHub上获得。

Show Disqus Comments

Post Directory

扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章