我正在评估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实体的结构,所以不确定为什么enunciate会窒息?这不符合JAX-RS吗?
如果出现问题,这对于捕获完整的发布数据以进行审计非常有用。有没有办法配置enunciate来忽略这个参数?
如果没有,是否有其他方法可以保持发音快乐的方式捕获帖子数据?我不愿意去MultivaluedMap,因为字符串化过程可能不会产生传入的字符串......
谢谢!
答案 0 :(得分:0)
可能是验证检查Enunciate执行已过时。您可以考虑submitting a JIRA issue请求更改。
您可以尝试一种解决方法是创建自己的自定义参数注释并配置Enunciate将其视为自定义资源参数。
<enunciate>
...
<services>
<rest>
<custom-resource-parameter-annotation qualifiedName="org.myco.CustomResourceParam"/>
</rest>
</services>
...
</enunciate>
但是,如果参数的目的是用于审核,我真的建议使用Jersey filter。这样,您就不会因审计问题而丢弃API代码。