class Lutaml::Hal::Client

def get(url, params = {})

Make a GET request to the API
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