Что такое API?

API — это набор команд, функций, протоколов и объектов, которые программисты могут использовать для создания программного обеспечения или взаимодействия с внешней системой.

Основные компоненты API

  • Конечные точки
  • Пути
  • Параметры
  • Аутентификация

Конечные точки API

Давайте посмотрим на простой API

https://api.kanye.rest/

Этот URL является конечной точкой.
Конечная точка — это один из концов канала связи. Когда API взаимодействует с другой системой, точки взаимодействия этого взаимодействия считаются конечными точками. Для API конечная точка может включать URL-адрес сервера или службы.

Место, куда API отправляют запросы и где находится ресурс, называется конечной точкой.

Пути API

Конкретный путь после конечной точки, который вы можете выбрать. Это похоже на ветку.
Путь — это единица REST API, которую вы можете вызывать. Путь состоит из глагола HTTP и пути URL, который при раскрытии объединяется с базовым путем API. Настраивая путь, вы определяете, как API предоставляется вашим разработчикам.

Параметры API

Параметры API – это параметры, которые можно передать конечной точке, чтобы повлиять на ответ.
параметры помещаются в конец URL-адреса после вопросительного знака, а затем идет пара "ключ-значение".
Когда вы хотите указать параметр, помните, что вам нужны символы в URL

нравится

https://v2.jokeapi.dev/joke/Programming?contains=hello

API-аутентификация

Когда мы приходим к данным, которые более монетизируемы или позволяют разработчикам создавать более сложные приложения, которые могут использоваться сотнями или тысячами пользователей, тогда эти веб-сайты должны начать очень тщательно думать о том, как либо монетизировать использование вами их данных, либо как чтобы ограничить ваше использование до порога. Они делают это с помощью аутентификации.
Поэтому каждый раз, когда вы отправляете запрос через API, они должны быть в состоянии идентифицировать вас как разработчика,
и они должны отслеживать как часто вы используете их сервер для получения данных, а затем взимаете с вас плату или ограничиваете вас, соответственно. Чтобы проиллюстрировать эту концепцию аутентификации.

Когда мы отправляем запрос на серверы OpenWeatherMap, данные, которые мы получаем, имеют формат, называемый JSON.

Что такое формат JSON?

Как это выглядит:

{
    "error": false,
    "category": "Programming",
    "type": "twopart",
    "setup": "Hey, wanna hear a joke?",
    "delivery": "Parsing HTML with regex.",
    "flags": {
        "nsfw": false,
        "religious": false,
        "political": false,
        "racist": false,
        "sexist": false,
        "explicit": false
    },
    "id": 10,
    "safe": true,
    "lang": "en"
}

Формат JSON означает нотацию объектов JavaScript.

JSON — не единственный формат, в котором мы можем получать данные от API. Таким образом, в дополнение к JSON вы часто найдете формат, называемый XML, который является расширяемым языком разметки, или он также может вернуться как простой HTML, язык гипертекстовой разметки.

Выполнение запроса на внешний сервер в узле js

Есть много способов. 5 способов делать HTTP-запросы в Node.js

Модуль запросов

HTTP — стандартная библиотека

В стандартной библиотеке есть модуль HTTP по умолчанию. С этим модулем вы можете просто подключиться и работать без установки внешних зависимостей. Недостатком является то, что он не очень удобен для пользователя по сравнению с другими решениями.

Сначала требуется модуль http в узле js

const https = require("https");

Мы будем использовать метод get

https.get(url[, options][, callback])

Пример кода:

https.get('https://encrypted.google.com/', (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);
  res.on('data', (d) => {
    process.stdout.write(d);
  });
}).on('error', (e) => {
  console.error(e);
});

Как парсить JSON?

Мы передали URL-адрес методу http get и добавили функцию обратного вызова для получения ответа.

res.on('data', (data) => {
    const wdata = JSON.parse(data);
  });

Метод JSON.stringify()

Преобразует объект или значение JavaScript в строку JSON, дополнительно заменяя значения, если указана функция-заменитель, или дополнительно включая только указанные свойства, если указан массив-заменитель.

Почтальон

когда мы тестируем API, мы будем использовать инструмент под названием Postman.