如何在go-swagger中为自定义Null类型批量添加x-nullable:true
统一为自定义Null类型添加Swagger x-nullable属性的方案
方案一:直接在原类型定义上添加扩展注释
你可以把Swagger扩展注释直接加在NullString的类型定义顶部,这样所有使用该类型的结构体字段都会自动继承x-nullable: true属性,无需逐个字段重复编写注释:
// swagger:type string // Extensions: // --- // x-nullable: true // --- type NullString string
只要结构体里用了NullString,生成的Swagger文档中对应的字段就会自动带上这个属性,一次性解决重复注释的问题。
方案二:封装新类型(不修改原类型的情况)
如果不想改动已有的NullString定义,可以封装一个带扩展注释的新类型,后续所有结构体统一使用这个新类型:
// swagger:type string // Extensions: // --- // x-nullable: true // --- type NullableString NullString
替换结构体中的NullString为NullableString后,生成的Swagger文档就会自动给对应字段加上x-nullable: true。
补充说明
用go-swagger生成文档时,类型定义上的Swagger扩展会被工具识别并应用到所有引用该类型的字段上,完全符合你减少重复代码的需求。
内容的提问来源于stack exchange,提问作者CivilizedCrab
相关产品推荐
相关产品推荐

