问题描述
我正在使用 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。
需要明确的是:AbstractEntity
在 Schemas 部分中不可见 - 我将其包含在此处以防万一。
到目前为止我已经尝试过:
- 在我想隐藏的类上使用
@Hidden
注释 - 在这些类上使用
@Schema(hidden = true)
- 将
SpringDocUtils.getConfig().addAnnotationsToIgnore(EventRole.class,AbstractEntity.class);
添加到我的 OpenAPI bean 配置
另外,我在控制器方法上测试了 @Hidden
并且它工作正常。 @Schema(hidden = true)
正确隐藏模型属性。不幸的是,它们都没有隐藏整个模型。我是否使用了错误的注释,或者可能有其他原因导致这不起作用?我是 OpenAPI 3.x 和 Springdoc 的新手,很可能我误解了一些东西。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)