Wiki
API (программный интерфейс приложения, интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай][1]) — описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой
По простому
API - это набор правил, по которым можно наладить связь между разными системами. Это то, что предоставляет некоторый сервис. Он же и разрабатывает его и он же даёт его в пользование.
Пример с той же погодой. Есть сервис - Погода. Он решил, что может предоставлять данные о погоде всем желающим.
Ты скажешь - "ну вот у них же сайт есть и там всё написано", но чтоб использовать данные о погоде в собственной программе придётся "парсить" целую страницу. Это не удобно, затратно и нестабильно.
Для этого разработчики разрабатывают набор правил, в данном случае - запросов. Выполнение которых будет возвращать строго определенную информацию.
Это же API может позволять вносить/модифицировать и удалять информацию (REST).
API как правило - это документация. Пример такой документации (API) для погоды -
https://openweathermap.org/current
Если углубиться в вопрос, то ты столкнёшься с такими понятиями как
токен или
ключ, которые определяют
уровень доступа к методам API. Некоторые API могут работать без таких вещей, но по большей части все используют токены. Хотя бы номинально.
API - позволяет делать только то, что реализовали разработчики. И если они не добавили методы, например, установки значения текущей температуры - ты не сможешь её изменить.
Ещё один момент, касательно топика - это не путать API и эмуляцию запросов с сайта сервиса. Т.е. смотреть, что вызывает сайт при работе ("искать в пакетах") и вызывать то же самое - это не API.
Дополнительно
API - это не только про запросы. API - более широкое понятие нежели доступ к серверу.
Через API работают, например, все программы в Windows - WinAPI. Через API программы взаимодействуют между собой. Плагины в браузере используют API браузера для работы с плагинами.