0

我正在评估 enunciate 以记录我们的 REST API,但我在验证步骤时遇到了问题:

Validation result has errors.
my.java: error: [core] An entity parameter must be of type MultivaluedMap<String, String> if there is another parameter annotated with @FormParam.
                            @FormParam("my-param") String myParam, String data)

除了 @FormParam 绑定之外,这种接受 POST 数据作为 String 实体的构造是由 Jersey 支持的,所以不确定为什么 enunciate 会窒息呢?这不符合 JAX-RS 吗?

如果出现问题,这对于捕获完整的帖子数据以进行审计非常有用。有没有办法配置发音来忽略这个参数?

如果没有,是否有其他方法可以以保持发音愉快的方式捕获帖子数据?我不愿意去 MultivaluedMap 因为字符串化过程可能不会导致传入的确切字符串......

谢谢!

4

1 回答 1

0

Enunciate 执行的验证检查可能已过时。您可以考虑通过提交 JIRA 问题来请求更改。

您可以尝试的一种解决方法是创建自己的自定义参数注释并配置 Enunciate 将其视为自定义资源参数。

 <enunciate>
   ...
   <services>
     <rest>
       <custom-resource-parameter-annotation qualifiedName="org.myco.CustomResourceParam"/>
     </rest>
   </services>
   ...
 </enunciate>

但是,如果参数的目的是用于审计,我真的建议使用Jersey filter。这样你就不会在你的 API 代码中乱扔审计问题。

于 2013-12-05T00:31:31.800 回答