Здравствуй, дорогой читатель. По какой-то причине вы встретили незнакомый для вас термин - API. Сегодня мы эти три буквы слышим все чаще. Но что они значат?
Если верить Википедии, то API расшифровывается как «application programming interface». Что в переводе означает - «программный интерфейс приложения». По отдельности слова понятны, а вместе? Давайте разбираться.
Начнем со слова «интерфейс». Интерфейс - это некий «проводник» между двумя объектами. В нашем случае - между программами. Это означает, что API помогает двум программам обмениваться данными между друг другом.
Но зачем и для чего? Давайте возьмем более вещественный пример.
Представим, что у нас есть генератор электричества, который приводится в движение ручкой.
Когда мы крутим ручку - генератор вырабатывает электричество. Это долго и неудобно. Но мы пока не знаем другого способа.
Но однажды в наш магазин привозят ветряной двигатель.
Чтобы облегчить себе жизнь мы принимаем решение, что нам нужно интегрировать двигатель в генератор. Открываем инструкции наших устройств и узнаем, что у наших устройств есть возможность их соединить. У обоих сбоку есть зубчатое колесо.
Но есть проблема, у устройств разный тип зубчатых колес и они не могут цепляться друг за друга. Решение этой проблемы довольно очевидно, необходимо создать колесо поддерживающее интерфейс (оба типа зубцов) обоих зубчатых колес.
А зачем нам создавать новое колесо, если мы можем переделать одно из устройств. Просто заменим ему колесо на такое же как у другого устройства.
Этот вариант плох по нескольким причинам:
- Устройства могут быть на гарантии и нельзя нарушать их целостность
- У нас недостаточно квалификации, чтобы переделать наше устройство
- Мы можем своими изменениями сломать устройство
- А если придется подключать еще одно устройство и часто их менять между собой, то надо все
сломатьпеределать?
Исходя из этих причин, лучшим решением будет сделать прослойку между ними.
А если не будем ломать, то у нас появляется возможность иногда подключать атомный двигатель к нашему генератору.
Подобное зубчатое колесо, которое соединяет два устройства (две программы) в мире IT называется интеграцией. У каждого приложения, портала, сайта или сервиса может быть API (а может не быть). Разработчики договорились между собой в каком виде будет это API: зубчатые колеса, цепи или пневматика. И стараются подробно описать его: размер и форма зубьев, их количество и т.д.
А можно ли сделать для всех единый API?
К сожалению, на текущем этапе это уже невозможно. Существуют миллионы программ, у них у всех разный возраст. Все они развивались по-разному. Сообщество разработчиков очень большое, программисты пользуются сотнями языков для реализации совершенно разных приложений.
А еще API - это базовое понятие, потому что у разных типов приложений оно бывает разного типа: WEB, SDK и т.д.
Так что такое API? API для программ, как язык на котором говорит человек. С помощью API программы обмениваются данными.
UPD Я постарался максимально упростить терминологию и умышленно опустить довольно сложные для понимания термины и нюансы. Буду рад получить обратную связь.