swagger功能扩展

在使用swagger的过程中
接口是这样写的:

img

img

实现效果是这样的:

img

swagger将每一个字段都解析了出来,我想让该实体类的type字段在新增和更新的时候必填,查询的时候不必填,如何能实现这样的效果?

我知道springfox有很多plugin可以扩展,但是不知道扩展哪个可以实现这样的效果

使用的swagger版本是swagger2-3.0,网上关于这个版本的贴子好像比较少

可以利用Springfox的Custom Plugins来实现。可以使用ApiModelProperty(@ApiModelProperty)来针对该字段创建自定义注解,扩展或覆盖原来定义的属性:

@ApiModelProperty(required = true, when = {When.ALWAYS, When.CREATE, When.UPDATE})

然后使用Springfox的插件来检测这些自定义注解,通过分析它们来决定字段是否是必填的。至于Springfox的Custom Plugins的使用,可以参考:https://springfox.github.io/springfox/docs/3.0.0/customization/