Какие у вас гет-запросы
Что проверяют
Формулировка странная, но смысл обычно такой: расскажите, как в вашем проекте устроено получение данных. Интервьюер хочет услышать не определение метода, а реальную картину: чем делаете запросы, где кэшируете, как обрабатываете ошибки. Следом часто спрашивают про гонки запросов и отмену.
Как отвечать
Опишите свой проект по пунктам, с конкретными инструментами:
- чем запрашиваете:
fetchили axios, обёрнутые в общий клиент с базовым URL, заголовками авторизации и разбором ответа; - где хранится результат: TanStack Query, SWR или RTK Query. Они дают кэш по ключу, дедупликацию одинаковых запросов, повторы при ошибке и фоновое обновление. Хорошо назвать свой
staleTimeи объяснить, почему он такой; - параметры: фильтры, сортировка и пагинация в query string, собранной через
URLSearchParams, чтобы значения экранировались. Для длинных списков курсорная пагинация или бесконечная прокрутка; - ошибки:
fetchне отклоняет промис на 404 и 500, поэтому проверяетсяresponse.ok, а сетевой сбой и ошибка сервера показываются пользователю по-разному; - отмена и гонки:
AbortControllerпри уходе со страницы или новом вводе в поиске, иначе старый ответ может прийти позже нового и перезаписать его; - HTTP-кэш: заголовки
Cache-ControlиETagс ответом304, их настраивает бэкенд, а фронтенд не должен им мешать.
Закончите свойствами самого метода: GET безопасный и идемпотентный, тело у него не используется, повтор запроса ничего не меняет на сервере.
Где спотыкаются
Подставляют пользовательский ввод в URL шаблонной строкой без экранирования. Амперсанд или решётка в поисковой строке ломают запрос.
Кладут токены и персональные данные в query string. Они оседают в логах сервера, истории браузера и заголовке Referer.
Рассказывают теорию про HTTP-методы, хотя спрашивали про ваш проект. Ответ без названий библиотек и примеров из своего кода звучит так, будто вы работали только с учебным API.