code: private static String buildCacheID(ApiRequest request) {
          StringBuilder req = new StringBuilder();
          if (request.getContract() != null) {
              req.append(request.getApiKey());
          } else {
              req.append(request.getApiOrgId()).append(KEY_SEPARATOR).append(request.getApiId())
                      .append(KEY_SEPARATOR).append(request.getApiVersion());
          }
          req.append(KEY_SEPARATOR).append(request.getType()).append(KEY_SEPARATOR)
                  .append(request.getDestination());
          return req.toString();
      }
docs: Builds a cached request id composed by the API key followed by the HTTP
  verb and the destination. In the case where there's no API key the ID
  will contain ApiOrgId + ApiId + ApiVersion