【问题标题】:Replace array response with page response using springdoc-openapi使用 springdoc-openapi 将数组响应替换为页面响应
【发布时间】:2021-07-23 21:33:44
【问题描述】:

我有一个返回字符串列表的控制器端点。 我的转换层中有代码,用字符串页面替换它。 (Page 是我写的一个类。)我如何告诉 spring-docs 来处理这个。默认情况下,springdoc 将响应声明为 JSON 字符串数组。

我可以用它来替换我的回复中的字段列表,如下所示:

SpringDocUtils.getConfig().replaceWithClass(List.class, Page.class);

但我不希望它这样做。事实上,Page 有一个 List 字段,这样就变成了一个 Page 字段,它本身也有一个 Page 字段,以此类推。

使用 springfox,我可以这样配置:

docket.alternateTypeRules(AlternateTypeRules.newRule(
    typeResolver.resolve(List.class, typeResolver.resolve(String.class)), 
    typeResolver.resolve(Page.class, typeResolver.resolve(String.class))));

这会将List<String> 的响应替换为Page<String>。我想做同样的事情,但是使用 spring-doc。

【问题讨论】:

  • 您是否尝试过自定义模型解析器?
  • @DebarghaRoy 我尝试实现 ModelConverter,但没有任何成功。

标签: springdoc


【解决方案1】:

您可以定义自己的实现 ModelConverter 的 Bean。 并且使用 resolve 方法,您可以访问所有响应类型,您可以根据需要进行更改。

你在这里有sample code

【讨论】:

    猜你喜欢
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2014-01-27
    • 2021-07-13
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多