我有一个Jax-RS web服务,我用Swagger记录 . 现在我想检查每个方法的@ApiOperation注释中的参数来进行一些过滤 .
@GET
@ApiOperation(value = "a description", response = String.class, hidden=true)
public static Response get(){}
我根据这个例子创建了一个ApiAuthorizationFilterImpl:
我覆盖了isOperationAllowed方法:
public boolean isOperationAllowed(Operation operation, ApiDescription api, Map<String, List<String>> params, Map<String, String> cookies, Map<String, List<String>> headers) {
System.out.println("params: "+params.keySet()); //<--params is empty
}
现在,当我试图访问params时,它是空的 . 相反,我可以从operation.parameters()打印参数,但我也无法访问它们,因为我得到一个带参数的Scala列表 .
一般来说,过滤器在启动Swagger-UI时是访问权限,因此它似乎在我的web.xml中正确传递 .
这是我身边的一个愚蠢的错误,或者我将如何能够访问这些参数?
作为一种解决方法,我也不介意从@ApiModelProperty注释中访问参数 .
2 回答
以下是访问isOperationAllowed方法中Scala参数的示例代码:
我的REST类注释如下:
我认为我的问题有点不精确,所以我会关闭它 . 我错误地试图访问@ApiOperation属性,而是阅读@ApiParams .
为了澄清我的实际需要,我打开了一个单独的问题https://stackoverflow.com/questions/24868665/accessing-attribute-hidden-of-apioperation-annotation-in-swagger .