class Lutaml::Hal::Client
def get(url, params = {})
def get(url, params = {}) cache_key = "#{url}:#{params.to_json}" return @cache[cache_key] if @cache_enabled && @cache.key?(cache_key) @last_response = @connection.get(url, params) response = handle_response(@last_response, url) @cache[cache_key] = response if @cache_enabled response rescue Faraday::ConnectionFailed => e raise ConnectionError, "Connection failed: #{e.message}" rescue Faraday::TimeoutError => e raise TimeoutError, "Request timed out: #{e.message}" rescue Faraday::ParsingError => e raise ParsingError, "Response parsing error: #{e.message}" rescue Faraday::Adapter::Test::Stubs::NotFound => e raise LinkResolutionError, "Resource not found: #{e.message}" end