我使用的是springdoc
,其中spring-boot
主要配置了注解。
我想公开一个没有被任何服务引用的特定类架构。可以这样做吗?
在伪代码中,我实际上是在尝试这样做:GroupedOpenAPI.parseAndAddClass(Class<?> clazz);
或GroupedOpenAPI.scan("my.models.package");
===更新===
我设法使用ModelConverters.getInstance().readAll(MyClass.class);
解析了架构
然后尝试将其添加为OpenApiCustomiser
,但它在UI中仍然不可见。
4条答案
按热度按时间cyvaqqii1#
在SpringDoc中,可以使用
OpenApiCustomiser
向生成的规范中添加一个非相关类但是需要小心,因为如果你的附加模型没有在任何API中被引用,默认情况下SpringDoc会自动删除每一个断开的引用定义。
要禁用此默认行为,需要使用以下配置属性:
trnvg8h32#
接受的答案是正确的,但是这只会添加“MyClass.class”的模式。如果有任何从
MyClass.class
引用的类不在模式中,它们将不会被添加。我设法添加了所有的类,如下所示:u91tlkcl3#
我测试了两个解决方案,并具有以下依赖项:
@nkocev解决方案在重新加载/v3/api-docs时对putAll()抛出了不支持的操作异常。
异常错误:在Java.util中为空。集合$不可修改的Map。全部放置(集合. java:1465)
@VadymVL解决方案运行良好,响应模型已添加到架构中。
我只是想提供这个信息。如果你想添加多个缺失的模式,你可以为每个模式创建一个@Bean。
我刚刚开始使用这些依赖项,但这似乎是一个可行的解决方案。我期待着更多有用的POC。
zdwk9cvp4#
使用
GroupedOpenApi
(必须手动设置模式):