docs: def _multi_get(self, cache_api_name, fmt_url_path, url_params, query_params=None):
          """Makes multiple GETs to an OpenDNS endpoint.
  
          Args:
              cache_api_name: string api_name for caching
              fmt_url_path: format string for building URL paths
              url_params: An enumerable of strings used in building URLs
              query_params - None / dict / list of dicts containing query params
          Returns:
              A dict of {url_param: api_result}
          """
          all_responses = {}
  
          if self._cache:
              all_responses = self._cache.bulk_lookup(cache_api_name, url_params)
              url_params = [key for key in url_params if key not in all_responses.keys()]
  
          if len(url_params):
              urls = self._to_urls(fmt_url_path, url_params)
              responses = self._requests.multi_get(urls, query_params)
              for url_param, response in zip(url_params, responses):
                  if self._cache:
                      self._cache.cache_value(cache_api_name, url_param, response)
                  all_responses[url_param] = response
  
          return all_responses