Проверяет умение фронтенд-разработчика обрабатывать на клиенте сценарий «Все» в фильтре, когда бэкенд не умеет принимать такое значение и требует либо конкретный список, либо отсутствие параметра.
Ситуация типичная: в UI нужен пункт «Все», но API принимает только конкретные значения фильтра и не понимает ни пустую строку, ни слово ALL. Решение — держать «Все» как отдельное клиентское состояние и не передавать его в запрос. Бэкенд в этом случае просто не получает параметр и возвращает нефильтрованный набор данных.
null или строку 'ALL'.const ALL = 'ALL';
let selectedCategory = ALL;
function buildQuery(params) {
const query = new URLSearchParams();
if (params.category !== ALL) {
query.set('category', params.category);
}
if (params.search) query.set('search', params.search);
return query.toString();
}
// selectedCategory = ALL -> запрос без category
// selectedCategory = 'books' -> ?category=books
Такой подход не требует изменений на бэкенде и хорошо ложится на REST и GraphQL. Он применим везде, где API не поддерживает агрегирующее значение, а UI должен дать пользователю удобный выбор «без фильтра».
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию