Накратко
API (Application Programming Interface, програмен интерфейс) е начинът, по който една програма моли друга програма за услуга, без човек по средата. Прилича на поръчка в ресторант: подавате заявка по менюто, получавате готово ястие по същото меню, без да ви пускат в кухнята да видите какво точно е станало вътре. Когато една компания обяви, че „пуска API“ за своя продукт, тя кани всеки друг разработчик да го вгради в своето приложение. От този момент продуктът вече не е просто нещо, което вие ползвате, а нещо, върху което други хора строят собствен бизнес.
Представи си, че сядаш на маса в ресторант, за да си поръчаш вечеря. Не влизаш в кухнята да провериш какво точно прави готвачът. Поръчваш от менюто, сервитьорът отнася поръчката зад летящите врати и се връща с отговор: готовото ястие, или обяснение, че нещо от менюто е свършило. Ти никога не виждаш какво точно се случи в кухнята. И не ти трябва.
Точно така работят две програми помежду си, когато си говорят през API (съкращение от Application Programming Interface, буквално интерфейс за програмиране на приложения). Едната подава заявка по точно уговорен образец, например „дай ми прогнозата за времето в София утре“. Другата я обработва в своя код, който никога няма да видиш, и връща отговор по същия уговорен образец. Никой от двете страни не знае и не му трябва да знае какво точно се случва отсреща.
Когато компания обяви, че отваря API за своя продукт или услуга, тя прави нещо конкретно: спира да готви само за собствения си салон и започва да доставя на всеки ресторант, който поиска да купи от нея. Заповядай, поръчай през менюто, ще те обслужим. Дотогава продуктът е бил ястие, сервирано само на собствените ѝ маси. От този момент нататък всяко друго приложение може да го вика отвътре, невидимо за човека, който в момента го ползва.
Това е границата, която ме интересува: денят, в който един продукт спира да е продукт и става инфраструктура, нещо, върху което други строят, без изобщо да го споменават.
Няма да го увивам
Когато четеш, че някоя компания отваря API, не мисли за технология. Мисли за голям доставчик на храна, който решава да продава полуготови ястия на всеки ресторант в града, вместо да сервира само на собствените си маси. Той вече не се показва на клиента. Продава съставки на други, които после ти поднасят нещо съвсем различно, без изобщо да споменат чия е кухнята. Затова толкова много „нови“ и „независими“ приложения всъщност пълнят чиниите си от една и съща кухня отзад. Витрините са много, кухнята често е една.
Първоизточници
MDN Web Docs: API (речник, Mozilla)Визуалът е генериран код-арт, без чужди изображения.