java - springdoc-openapi 通用 Controller 类型参数支持

标签 java spring swagger openapi springdoc

我有以下 Controller 代码:

    public abstract class BaseController<TClientModel extents BaseClientModel> {
       @Operation
       @GetMapping
       Page<TClientModel> get()
    }

    @Data
    public abstract class BaseClientModel {
       int id;
    }

    @RestController
    public class SpecificController extends BaseController<SpecificClientModel> {}

    @Data
    public class SpecificClientModel extends BaseClientModel {
        String name;
    }

问题: 当在 Swagger 中为 SpecificController 生成 open-api 标记时,响应中的客户端模型是 BaseClientModel,而不是 SpecificClientModel,并且只有 id 字段,而不是 id+name。

实际:

{
  "id": 0,
}

预期:

{
  "id": 0,
  "name": "string",
}

鉴于我有 40 多个特定 Controller ,有什么方法可以让 springdoc open-api 根据特定通用参数生成正确的标记?

最佳答案

该支持现已成为 springdoc-openapi v1.2.33 的一部分。 例如,如果您使用的是 spring-mvc,您可以声明:

   <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-ui</artifactId>
      <version>1.2.33</version>
   </dependency>

关于java - springdoc-openapi 通用 Controller 类型参数支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60038620/

相关文章:

java - @Service 中的@Autowired?

java - 如何将 @ApiModelProperty dataType 设置为 String 以获取 Swagger 文档

java - 没有 AWT 的 Swing GUI 监听器

java - RequestContextHolder.getRequestAttributes() 第二次调用返回 null

Java泛型构造函数

java - 将自定义 UserDetailsS​​ervice Autowiring 到 AbstractAuthenticationProcessingFilter

scala - 告诉 Swagger 请求正文可以是单个对象或对象列表

python - 允许 python-flask swagger 应用程序的 JSON 响应中存在空值吗?

java - 错误 : "java.io.IOException: Type mismatch in key from map" on my MapReduce class (using Hadoop 2. 2.0)

java - 通过 Hibernate(不是 JDBC)从 blob 中检索图像