微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Swagger UIOpenAPI 3,Spring Boot的“架构”部分隐藏某些架构

如何解决如何在 Swagger UIOpenAPI 3,Spring Boot的“架构”部分隐藏某些架构

我正在使用 Springdoc 来记录我在 Spring Boot 中制作的 REST API。 我需要在 Swagger UI 的 Schemas 部分隐藏一些模型/架构,这些模型/架构仅在 API 内部使用,因此无需在 Schemas 部分显示它们。>

这是我试图隐藏的模型之一:

@Getter
@Setter
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table
public class EventRole extends AbstractEntity implements Serializable {
    @Column(nullable = false,length = 25)
    private String descriptor;
}

上图所示模型的超类:

@Data
@requiredArgsConstructor
@SuperBuilder
@MappedSuperclass
public abstract class AbstractEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @CreationTimestamp
    @Column(nullable = false,updatable = false)
    private LocalDateTime creationDate;

    @UpdateTimestamp
    @Column(nullable = false)
    private LocalDateTime modificationDate;
}

这些示例中的大部分注释来自 JPA 或 Lombok。 需要明确的是:AbstractEntitySchemas 部分中不可见 - 我将其包含在此处以防万一。

到目前为止我已经尝试过:

  • 在我想隐藏的类上使用 @Hidden 注释
  • 在这些类上使用 @Schema(hidden = true)
  • SpringDocUtils.getConfig().addAnnotationsToIgnore(EventRole.class,AbstractEntity.class); 添加到我的 OpenAPI bean 配置

另外,我在控制器方法上测试了 @Hidden 并且它工作正常。 @Schema(hidden = true) 正确隐藏模型属性。不幸的是,它们都没有隐藏整个模型。我是否使用了错误的注释,或者可能有其他原因导致这不起作用?我是 OpenAPI 3.x 和 Springdoc 的新手,很可能我误解了一些东西。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。