refactored (added inheritance) for requests and api services
ensure that responses != Success are not cached

If a uri response from the cache is != Success, it will cause the
services to make a fresh call to the remote server and not just use a
cached "bad" response.