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