EvolCode
треки/API и .env·01 / 05
5 мин чтения

Что такое API и зачем он нужен

Вы хотите, чтобы в вашем приложении ИИ отвечал на вопросы. Но писать ChatGPT с нуля — задача на годы и миллиарды. Поэтому OpenAI открыл «дверь»: вы стучите в неё с вопросом, она вам отвечает. Эта дверь и называется API.

Аналогия: пицца по телефону

Когда вы заказываете пиццу, у вас есть номер телефона (URL), формат заказа («одну Маргариту, адрес такой-то» — это request) и ответ оператора («будет через 30 минут» — response). Если ошибётесь номером — никто не возьмёт трубку (404). Если позвоните в 4 утра — пиццерия закрыта (500). API работает точно так же: URL + что вы отправляете + что вам возвращают.

Из чего состоит запрос

URL — куда обращаемся (https://api.openai.com/v1/chat). Метод — что хотим (GET = «дай», POST = «прими и обработай», DELETE = «удали»). Headers — служебная информация («я Иван, вот мой пропуск»). Body — основные данные (что именно отправляем). Status code в ответе говорит что произошло: 200 = OK, 401 = «не пускаем» (нет ключа), 404 = «не нашёл», 429 = «слишком часто стучишь», 500 = «у нас сломалось».

Что бывает в ответе

Ответ — это обычно JSON: текст по строгим правилам с фигурными скобками. JavaScript умеет его парсить одним вызовом .json(). После парсинга получается обычный объект, к полям которого вы обращаетесь как user.name. То же самое любая платформа делает по-своему — Python через requests, Go через net/http — суть одна.

примерjavascript
// Самый простой вызов API без ключа.
// JSONPlaceholder — публичная «заглушка» для тестов.

const response = await fetch('https://jsonplaceholder.typicode.com/users/1');
const user = await response.json();

console.log(user.name);    // "Leanne Graham"
console.log(user.email);   // "Sincere@april.biz"

// Что произошло:
// 1. Браузер отправил GET-запрос на URL
// 2. Сервер ответил JSON-ом
// 3. .json() распарсил его в объект
// 4. Мы прочитали поля как обычные свойства

fetch — встроенная в браузер функция для HTTP-запросов

главное
  • 01API — способ обратиться к чужому сервису по правилам, которые сервис описал
  • 02URL = адрес, headers = пропуск, body = данные, status = что произошло
  • 03200 — успех, 4xx — твоя ошибка, 5xx — их ошибка
  • 04JSON — текст по правилам, который JS парсит в обычный объект через .json()
  • 05fetch есть в каждом браузере — никаких библиотек не нужно для простых запросов
проверь себя
01Что значит status code 401?
02Какой метод стоит использовать чтобы СОЗДАТЬ запись через API?
03Почему ответ JSON, а не plain text?
следующий урок: Где взять API-ключ и почему он секретный