Использование Fetch API в JavaScript. Часть 1
Сегодня мы поговорим о том, что такое Fetch API и где он используется. JavaScript Fecth API обеспечивает интерфейс для извлечения ресурсов из сети Интернет. Звучит знакомо, не так ли? Да, действительно, по своему назначению он похож на всем известный XMLHttpRequest, который использовался и используется для осуществления асинхронных запросов. Но как, опять же, известно, его интерфейс далек от совершества, поэтому часто вместо XMLHttpRequest используют иные кроссплатформенные реализации, такие как например, jQuery.ajax(). Но теперь JavaScript имеет встроенную поддержку асинхронных запросов на основе Fetch API.
Итак, в Fetch API есть функция fetch(), с помощью которой можно делать запросы аналогично XMLHttpRequest (XHR). Но в отличие от XMLHttpRequest данная функция возвращает объект JavaScript обещания Promise, что позволяет писать более чистый и понятный код. Мы можем также использовать ключевые слова из ES7 - async и await для того, чтобы вообще избавиться от промисов, но в данном примере я буду использовать обещания для практических примеров.
Функция fecth(), о которой я упоминал выше, определена в объекте Window. Поэтому ее сразу можно использовать для выполнения запросов без создания каких либо объектов. Эта функция возвращает объект Promise, который можно использовать для извлечения ответа запроса. Работает эта функция так: на сервер отправляется запрос с помощью HTTP методов GET и POST, полученный ответ извлекается и отправляется пользователю в требуемом формате. У функции fetch(), только один обязательный аргумент, представляющий собой URL ресурса, который вы хотите извлесь (fetch).
Запросы
Объект Request представляет запрашиваемую информацию в вызове функции fecth(). Таким образом, запросы, осуществляемые через функцию fetch могут быть настроены по желанию, с помощью следующих опций:
- method - GET, POST, PUT, DELETE, HEAD
- url - URL адрес
- headers - объект Headers
- referrer - откуда пришел запрос, заголовок HTTP referer
- mode - cors, no-cors, same-origin - режимы правил ограничения домена
- credentials - должны ли cookies отправляеться вместе с запросом - omit, same-origin
- redirect - редирект - follow, error, manual
- cache - режим кеширования (default, reload, no-cache)
GET Запрос
Простейщий GET запрос с помощью функции fetch() будет иметь следующий вид:
fetch('https://api.github.com/users/fabpot')
.then(response => response.json()) // преобразуем ответ в json
.then(data => {
console.log(data) // выводим в консоль результат выполнения response.json()
})
.catch(error => console.error(error))
Что происходит в данном примере? Мы получаем ответ, который является объектом, который затем преобразуем в формат JSON и выводим в консоль.
Список некоторых методов для последующей обработки ответа:
- clone() – с помощью этого метода создается копия объекта ответа.
- json() – преобразование ответа в формат JSON.
- redirect() – создает новый ответ (response) с другим URL адресом.
- text() – преобразует ответ в строку.
- arrayBuffer() – преобразует ответ в объект ArrayBuffer.
- blob() – преобразует ответ в объект Blob.
Таким образом, в данной статье мы узнали о том, что такое Fetch API и как с помощью функции fetch делать простые запросы. В следующих статьях мы продолжим обсуждать эту тему.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.