如何让Swagger读取SpringMVC注释

时间:2017-02-08 06:52:40

标签: spring-mvc swagger

在查看一段代码时,我遇到了一个带有大量注释的函数,其中包含了一些内容

@ApiParam(value = "order number", required = false) @RequestParam(value = "order", required = true)

required = falserequires = true相比看起来非常可疑,它可能是一个错误。注释中的重复是导致此类错误的明显原因。为什么Swagger不能简单地读取@RequestParam注释,使@ApiParam注释过时,或者至少是可选的?

我如何优雅地做到这一点?

1 个答案:

答案 0 :(得分:1)

您使用的是最新的spring-fox吗?根据{{​​3}},当无法从MVC / Jackson注释中提取行为/模型时,您只需要使用@ApiXX

  

<强> 1.2。目标

     

从哲学上讲,我们希望不鼓励使用(swagger-core)注释,这些注释在运行时对服务描述不重要。对于例如杰克逊注释应该总是胜过或者比@ApiModelProperty具有更大的权重,例如@NotNull或指定@RequestParam#required应始终获胜。在无法推断服务/架构特征的情况下,注释仅用于补充文档或覆盖/调整生成的规范。

因此即使@ApiParam指定required的冲突值,springfox生成的api-docs也将使用@RequestParam值。