Sidhant
Sidhant

Reputation: 441

Spray Routing Cache dont cache 404

Hey guys im using the spray routing cache directive with routeCache method to cache my api calls.

But the issue is that if you api is returning 500 for some reason then in that case also spray is caching that and keeps returning 500 until the cache expires.

So how can i cache only 200 OK responses in spray cache and not others.

Upvotes: 0

Views: 67

Answers (1)

jitendra
jitendra

Reputation: 195

Following worked

Instead of doing

ctx.complete(ErrorCode, Error)

did

ctx.failWith(Error)

Ref:

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

With failWith the value isFailure is set and so cache being done unset

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

To maintain proper status code, can use custom exception handlers as explained in above link

Upvotes: 0

Related Questions