Swagger 文档里的 Model 如果有 Timestamp 类型的字段,默认会展示成这样:
这样展开的话,前端同学容易误解,以为这个字段是一个对象,而不是一个时间戳。如何禁止展开呢?
可以在 Swagger 的配置里,在构建 Docket 对象的时候,加上 .directModelSubstitute(Timestamp.class, Date.class)
,来指定文档里将 Timestamp 类型替换为 Date 类型。
比如:
@Bean
public Docket api() {
Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage(this.basePackage))
.paths(PathSelectors.any())
.build()
.enable(this.enable)
.directModelSubstitute(Timestamp.class, Date.class)
.securitySchemes(securitySchemes())
.securityContexts(securityContexts())
.useDefaultResponseMessages(false);
log.info("[Swagger] inject swagger Docket to spring: {}", docket);
return docket;
}
修改后的效果:
文档信息
- 本文作者:Zhuang Ma
- 本文链接:https://mazhuang.org/fragment/swagger-timestamp/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)