Код Junior Кеширование обновлено

Построить ключ кеша для запроса

Условие

Напишите cache_key(path, params, user_id, version): ключ вида v{version}:{path}:{params}:{user}, где params это query-параметры, отсортированные по имени и записанные как a=1&b=2 (пустая строка, если параметров нет), а user это u{user_id} или anon для None. Параметры utm_* (маркетинговые метки) в ключ не входят.

Примеры

cache_key("/catalog", {"page":"2","cat":"tea"}, null, 3) // "v3:/catalog:cat=tea&page=2:anon"
cache_key("/catalog", {"cat":"tea","page":"2"}, null, 3) // "v3:/catalog:cat=tea&page=2:anon"
cache_key("/profile", {}, 42, 1) // "v1:/profile::u42"

Как подойти

Подсказки: 2
  1. sorted(params.items()), фильтр utm_.
  2. user_id может быть 0: сравнивайте с None.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.