在查看一段代码时,我遇到了一个带有大量注释的函数,其中包含了一些内容
@ApiParam(value = "order number", required = false) @RequestParam(value = "order", required = true)
required = false
与requires = true
相比看起来非常可疑,它可能是一个错误。注释中的重复是导致此类错误的明显原因。为什么Swagger不能简单地读取@RequestParam注释,使@ApiParam注释过时,或者至少是可选的?
我如何优雅地做到这一点?
答案 0 :(得分:1)
您使用的是最新的spring-fox
吗?根据{{3}},当无法从MVC / Jackson注释中提取行为/模型时,您只需要使用@ApiXX
:
<强> 1.2。目标强>
从哲学上讲,我们希望不鼓励使用(swagger-core)注释,这些注释在运行时对服务描述不重要。对于例如杰克逊注释应该总是胜过或者比@ApiModelProperty具有更大的权重,例如@NotNull或指定@RequestParam#required应始终获胜。在无法推断服务/架构特征的情况下,注释仅用于补充文档或覆盖/调整生成的规范。
因此即使@ApiParam
指定required
的冲突值,springfox生成的api-docs也将使用@RequestParam
值。