我正在使用katharsis 2.0.0构建基于JSON:API的服务。这是在与Ember 2.0一起使用的spring-boot 1.3.0中完成的(ember-data)。 Ember将过滤器参数正确格式化为:


  / resource / filter [id] = xxxx


URL将其正确编码为:


  / resource / filter%5Bid%5d = xxxxx


但是,katharsis抱怨说它的格式不正确,并且不是URL解码参数的。有什么办法可以:


URL在到达Katharsis之前对请求中的URL进行解码
获取ember数据以不对[和]字符进行url编码?


我认为这实际上可能是katharsis中的错误,但需要解决方法。

最佳答案

它被认为是一个错误,应予以修复。解决方法是使用一种覆盖getRequestQueryString方法的方法扩展ServletKatharsisInvokerFilter并使用执行URLDecoder.decode的方法扩展。然后创建一个将AbstractKatharsisFilter扩展为组件(BeanFactoryAware)的JsonApiFilter,并重写createKatharsisInvokerContext以使用新的调用程序过滤器。

katharsis-servlet和katharsis-spring v2.0.3已发布,带有固定的查询参数。

https://github.com/katharsis-project/katharsis-core/issues/167

09-26 00:03