喷雾路由缓存不缓存 404

Spray Routing Cache dont cache 404

大家好,我正在使用带有 routeCache 方法的喷雾路由缓存指令来缓存我的 api 调用。

但问题是,如果您 api 由于某种原因返回 500,那么在这种情况下,喷射也会缓存它并一直返回 500 直到缓存过期。

那么我怎样才能在喷雾缓存中只缓存 200 个 OK 响应而不缓存其他响应。

以下工作

而不是做

ctx.complete(ErrorCode, Error)

做过

ctx.failWith(Error)

参考:

(1) https://github.com/spray/spray/blob/master/spray-caching/src/main/scala/spray/caching/LruCache.scala#L79

使用 failWith 设置了值 isFailure,因此取消设置缓存

(2) http://spray.io/documentation/1.2.2/spray-routing/route-directives/failWith/

要维护正确的状态代码,可以使用上面解释的自定义异常处理程序link