美文网首页
swagger @Schema 注解的处理类OpenApiSch

swagger @Schema 注解的处理类OpenApiSch

作者: 何家小富富 | 来源:发表于2025-04-30 21:26 被阅读0次

核心代码1

  public void apply(ModelPropertyContext context) {
    Schema annotation = context.getAnnotatedElement()
                               .flatMap(OpenApiSchemaPropertyBuilder::findSchemaAnnotation)
                               .orElse(context.getBeanPropertyDefinition()
                                              .flatMap(b -> findPropertyAnnotation(b, Schema.class))
                                              .orElse(null));

    if (annotation != null) {
      ModelSpecification modelSpecification = null;
      ResolvedType type = toType(context.getResolver()).apply(annotation);
      if (!isVoid(type)) {
        modelSpecification =
            modelSpecifications.create(context.getOwner(), type);
      }

      context.getSpecificationBuilder()
             .description(toDescription(descriptions).apply(annotation))
             .readOnly(annotation.readOnly())
             .isHidden(annotation.hidden())
             .type(modelSpecification)
             .position(0)
             .required(annotation.required())
             .example(annotation.example())
             .enumerationFacet(e -> e.allowedValues(Arrays.asList(annotation.allowableValues())));

    }
  }

核心代码2

  static Function<Schema, ResolvedType> toType(final TypeResolver resolver) {
    return annotation -> resolver.resolve(annotation.implementation());
  }

Schema 注解使用 ==> implementation指定class

相关文章

网友评论

      本文标题:swagger @Schema 注解的处理类OpenApiSch

      本文链接:https://www.haomeiwen.com/subject/ucriddtx.html