我有一个 rest API,我部署它以使用 enunciate 招摇的 Ui。但是我在使用swagger注解在swagger Ui上添加注释时遇到了一些问题。有一些注解在 Ui 上不起作用(@ApiModelProperty),还有一些可以正常工作(@ApiOperation)。
这是我的源代码中的一个例子
pom.xml
<plugin>
<groupId>com.webcohesion.enunciate</groupId>
<artifactId>enunciate-maven-plugin</artifactId>
<version>2.14.0</version>
<executions>
<execution>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
</plugin>
.....
<dependency>
<groupId>com.webcohesion.enunciate</groupId>
<artifactId>enunciate-core-annotations</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>com.webcohesion.enunciate</groupId>
<artifactId>enunciate-rt-util</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.3.7.Final</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.9</version>
</dependency>
用户类(我使用 @ApiModelProperty 和 @apimodel 不起作用)
ApiModel(description = "User Model")
public class User {
@ApiModelProperty(value = "user's age", required = true)
private String age;
@ApiModelProperty(value = "user numero", example = "0000", required = true)
private String numero;
UserRessource.class my web service . ApiOperation works but ApiParam doesn't work
@ApiOperation(value = "Gets users by Numero", notes = "user must exist")
@GET
@Path("/agences/{numero}")
public Response getUserByNumero(@ApiParam(value = "User numero", example = "5152", required = true) @PathParam("usernUMERO") String numero) throws Throwable {
if (StringUtils.isBlank(numero)) {
return toResponse(ErrorMessages.ERROR_MISS_AGENCE_NUM);
}
return getUserByNumero(numero);
}
是否有可能某些 swagger 注释不适用于 enunciate 2.14 和其他注释工作?
在您的示例中,Enunciate 2.14 可能不支持 @ApiModelProperty 注释,或者它需要额外的配置才能正常运行。也有可能是您使用的 Swagger 注解库版本不支持 @ApiParam 注解。