feat(): accept cache

 can get response in cache when cache is provided and response present in cache. This is useful when a resource does not change often (like a list of countries)