API
API (Application Programming Interface, программный интерфейс приложения) — это набор инструментов, которые позволяют одному приложению взаимодействовать с другим.
Большинство приложений работают по клиент-серверной архитектуре. Это означает, что приложение или сервис состоит из двух программных частей — клиентской и серверной. Для взаимодействия эти части каким-то образом находят общий язык. Этот «общий язык» и называется API. Он позволяет двум приложениям функционировать, общаться между собой, не обращая внимания на разные языки программирования, на которых сделана клиентская и серверная часть.
API-интерфейсы предоставляют нам конечную точку или конкретный URL-адрес, где отображаются нужные данные. Некоторые API требуют, чтобы вы зарегистрировали учетную запись или получили уникальный ключ для доступа к их информации. При аутентификации вы передаёте API ключ, который идентифицирует конкретного пользователя или запрос приложения. Затем сервер может определить, можете ли вы получить доступ к данным или нет.
Работа с API
В JavaScript имеется собственный встроенный способ отправки запросов API. Это Fetch API, современный, гибкий и универсальный стандарт создания серверных запросов с промисами.
-
codeСинтаксисФункция fetch() принимает два параметра: адрес ресурса, на который требуется отправить запрос, и объект с настройками. Второй параметр опционален и может не использоваться:
fetch(адрес[, настройки]);
По умолчанию fetch() выполнит GET-запрос.
Результатом выполнения fetch() станет промис. Это даёт нам возможность использовать методы then, catch и finally.
После метода fetch() нужно включить метод промиса then():
.then(function() { })
Под методом then() следует включить метод catch(), который выполняется в случае возникновения ошибки:
.catch(function() { });
В случае успешного выполнения fetch() мы получим от сервера ответ — response (специальный объект ответа) в JSON. Чтобы прочитать JSON используем метод json() у объекта с ответом:
.then((response) => response.json())
Встроенный метод json() автоматически извлечёт JSON-данные из ответа, преобразует их в объект или массив, и вернёт новый промис. Можно продолжать цепочку then и, например, вывести данные в консоль:
.then((posts) => console.log(posts));
-
codeОтправка информации на серверРабота с fetch() не ограничивается лишь получением данных от сервера. Можно также их передавать на сервер. Для этого необходимо задать объект и передать его как второй аргумент функции fetch().
-
codeПримеры API
Вставим на страницу несколько забавных апишек :)
NASA
Эта позволяет нам получить доступ к базе NASA и поставить на страницу картинку и немного информации про неё. Правда, для этого надо получить ключ на сайте.
API покемонов
Это бесплатный API, для доступа к которому не требуется аутентификация. Можно запрашивать конкретных покемонов, движения, игры, локации и многое другое.
Котики
Разумеется, этот проект не мог обойтись без котиков :) В этом нам поможет вот этот сайт, который выдаёт рандомные картинки котов.