当前位置: 首页 > 知识库问答 >
问题:

使用springdoc openapi将数组响应替换为页面响应

端木安国
2023-03-14

我有一个控制器endpoint,返回字符串列表。我有代码在我的转换层,取代了这个页面的字符串。(Page是我写过的一个类。)我如何告诉Spring医生来处理这个。默认情况下,springdoc将响应声明为字符串的JSON数组。

我可以让它替换我的回答中的字段列表,如下所示:

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

但我不想让它那样做。事实上,页面有一个列表字段,因此它会变成一个页面字段,而页面字段本身也有一个页面字段,依此类推。

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

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

替换List的响应


共有1个答案

端木震博
2023-03-14

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

这里有示例代码。

 类似资料:
  • 问题内容: 在讨论特定问题之前,我需要解释一些基本步骤。 首先,所涉及的应用程序处理客户在线约会的管理。 顾客填写完美容中心的护理表格并提供其信息后,将进入确认页面。 现在,此页面执行ajax请求以将约会存储在数据库中。 如果一切成功,将显示一个页面,其中包含约会的详细信息以及成功消息。 问题在于该页面当前仅显示在响应中,即在选项卡网络控制台浏览器中。 所以我的问题很简单: 即使在StackOve

  • 输出 66 888美元 如何去掉这个美元标志?如果可能的话,我可以用印度卢比符号代替它吗? 示例代码

  • 我需要将其转换为以下格式: 类型的数量可以改变(例如,可以只有A和B)。有人能帮我吗?我使用这个组件在网站https://js.devexpress.com/demos/widgetsgallery/demo/datagrid/simplearray/angular/light/上显示数据

  • 我正在处理jBPM 7.22.0。最终的 我使用服务任务REST从这个api获取响应https://reqres.in/api/users/1 我想将此响应获取到一个对象中,因此我创建了这个类(或jBPM中调用的数据对象): 我在jBPM中创建了一个名为res的全局变量,该变量具有我要存储响应的数据对象的类型。因此,在我的REST服务任务的“任务”中,我有屏幕截图中的内容。 如您所见,我想将结果存

  • null 这是很好的,因为我可以确定我的API请求是否成功。 但是: 由于JSend格式有它自己的东西,它在响应时也有一个小的状态指示器,如下所示: 我是否应该坚持手动解析并使用而不是我的模型 对于类型paramter? 因为这样,我可以使用并将字符串转换为JSON,然后我可以手动解析模型,就像为它们编写解析器一样。

  • 一切正常,但我不能使用RestTemplate getForEntity方法使用我的endpoint: 我应该提供什么类来成功反序列化我的实体页面?