Ответ
Для работы с REST API в Frontend разработке чаще всего используют:
- Fetch API - нативный браузерный метод:
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data));
- Axios - популярная библиотека с удобным синтаксисом:
axios.get('https://api.example.com/data')
.then(response => console.log(response.data));
-
SWR/React Query - для кэширования и управления состоянием данных
-
GraphQL (Apollo Client, Relay) - альтернатива REST для сложных API
-
Postman/Insomnia - для тестирования API во время разработки
Ключевые различия:
- Fetch встроен в браузер, но требует ручной обработки ошибок
- Axios имеет interceptors, автоматическую трансформацию данных
- React Query предоставляет кэширование, инвалидацию, рефетч
Ответ 18+ 🔞
Слушай, ну вот реально, как же все эти фронтендеры с API работают, а? Сидят такие, блядь, и думают: "О, сейчас я запрос сделаю, сервер мне что-нибудь пришлет". А там, сука, пиздец какой-то начинается.
Вот смотри, самый базовый способ — это Fetch API. Он прямо в браузере живет, бесплатный, как воздух. Но это ж, блядь, как с голыми руками на медведя идти.
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data));
Вроде красиво, да? А ты попробуй ошибку поймать! Там же, сука, надо в каждый then залезть и проверять, не пришел ли response.ok. А если нет — так еще и response.status смотреть, что за хуйня случилась. Овердохуища рутины, в рот меня чих-пых!
Ну и пошли умные ребята, которые сказали: "Да похуй, сделаем библиотеку". И родился Axios. Вот это, блядь, уже дело.
axios.get('https://api.example.com/data')
.then(response => console.log(response.data));
С ним уже проще, ёпта. Ошибки сам ловит, JSON сам распаковывает, можно даже, сука, перехватчики (interceptors) настроить — чтобы перед каждым запросом токен приклеивать, например. Красота, а не инструмент. Хуй с горы по сравнению с голым fetch.
Но это еще не всё! Приходят другие гении и говорят: "Ребята, вы ебётесь с кэшированием как кони, а мы принесли вам SWR или React Query". И правда, зачем десять раз на один и тот же эндпоинт стучаться, если данные не поменялись? Эти штуки всё за тебя запомнят, обновят, когда надо, и вообще, жизнь сахаром сделают. Удивление пиздец, как раньше без них жили.
А если совсем ебнуться и уйти с головой в альтернативную вселенную, то есть GraphQL с его Apollo Client или Relay. Это когда ты, сука, не просто запрашиваешь готовый кусок данных с сервера, а пишешь ему, что именно тебе нужно, вплоть до полей. Мощно, гибко, но и мозг выносит конкретно. Для особо хитрожопых проектов.
Ну и куда ж без инструментов для тестирования, а? Postman или Insomnia. Сидишь такой, кликаешь кнопочки, смотришь, что сервер тебе в ответ плюнет, прежде чем в код это всё встраивать. Незаменимая, блядь, вещь, чтобы не выглядеть идиотом перед бэкендерами.
Короче, выбор есть. Можно мучиться с нативным fetch, можно взять удобный axios, а можно и вовсе нахуевертить себе React Query для полного счастья. Главное — не путать их в коде, а то получится каша, манда с ушами.