首页 > 解决方案 > Swagger 基于上下文的大小约束

问题描述

我们在项目中使用springdoc-openapi-ui:1.4.1。一些“子”DTO 很常见,并用于不同的顶级请求-响应“父”DTO。有没有办法指定不同的长度约束,例如,此类共享“子”DTO 的字符串属性,基于它通过组合嵌套在哪些顶级 DTO 中?IE

@Getter
@Setter
public class Request {
    private NameContainter holder;
}
@Getter
@Setter
public class Response {
    private NameContainter holder;
}
@Getter
@Setter
public class NameContainer {
   private String name;
}

在 Request holder.name 中,最大长度必须为 20 个字符,在 Response 中 - 最多 50 个。据我研究 swagger-core-2.1.2.jar:io.swagger.v3.core.jackson.ModelResolver,它具有使用属性约束的非常简单的逻辑 - 如果它看到 JSR-303 Bean Validation 注释,则来自它们的值被简单地放入相应的 Schema 对象中,而无需对使用属性的位置进行任何“路径相关”分析。

标签: javaswaggerspringdoc

解决方案


推荐阅读