Иллюстрации: Артём Морозов

 

Любой разработчик с практическим опытом хорошо представляет себе, что такое API. Но объяснить это людям, не посвященным в тонкости профессии, зачастую оказывается сложно.

Представьте себе механические часы: сложный механизм из шестеренок и маятников, регулирующий движение стрелок на циферблате. Чтобы вникнуть в работу механизма нужно много времени. Однако повседневное использование часов требует лишь краткого инструктажа: часовая, минутная и секундная стрелки — для определения времени, и колесико — для подвода часов. Если перейти на язык программирования, стрелки и колесико — и есть API часов. Он скрывает сложный механизм под набором простых и понятных элементов.

Техническая справка

API — это аббревиатура от Application Programming Interface — набор определений взаимодействия разнотипного программного обеспечения. API — это, как правило (но не обязательно), метод абстракции между низкоуровневым и высокоуровневым программным обеспечением.

API используется не только для упрощения работы со сложными механизмами. Часто его используют для создания единого принципа работы с разными по своей структуре компонентами. За примером далеко ходить не надо: любая операционная система позволяет нам одинаково легко работать с жесткими дисками, компакт-дисками и флешками. Но ведь «под капотом» запись и чтение данных с этих носителей требуют выполнения совершенно разных операций. API прячет от нас эти различия.

Еще одна область применения API — ограничение функционала, доступного сторонним программам. Именно в таком виде API используются в вебе: разработчик не может получить прямой доступ к базе данных пользователей Facebook, однако он может запросить ограниченный набор информации через API соцсети.

API не всегда общедоступны: некоторые разработчики аппаратного обеспечения продают доступ к своим API. Так поступают, например, разработчики игровых консолей. Это позволяет им полностью контролировать доступ к своей платформе, а еще приносит дополнительный доход.

 

Современные API имеют множество форм, даже если ограничиваться интернетом. JavaScript-библиотеки, протоколы обмена данными между веб-сайтами, встраиваемые на веб-страницу карты и геолокационные функции в HTML5 — все это примеры API. Одни позволяют ускорить разработку веб-ресурса, сгладив кросс-браузерные нюансы, другие позволяют легко интегрировать в свой сайт полезный функционал. Какой бы ни была задача того или иного API, они — однозначное благо.