API - расшифровывается как Application Programming Interface (Программный интерфейс приложения). По сути интерфейс - это договор, описание способов взаимодействия между программами, как они могут общаться и передавать данные друг другу.
Примеры
Приходя в любимое кафе вы взаимодействуете с официантом. Вы можете попросить меню, сделать заказ, попросить счет. Официант - является интерфейсом вашего взаимодействия с рестораном. Вам не нужно знать как готовиться то или иное блюдо, ингредиенты, как рассчитывать чек, все это сделает кафе и отдаст вам результаты при помощи официанта, который в данном примере представляет собой API ресторана. От вас скрываются сложные детали и просто происходит общение между двумя системами: клиентом и рестораном.
Вернемся к компьютерам и возьмем API центрального банка РФ. Сюда можно отправить какой-то запрос и получить какой-то ответ. Предположим что мы хотим узнать курс доллара к рублю. В таком случае нам необходимо чтобы браузер сделал заброс к API банка, получить данные и отрисовать на странице.
Из чего состоит API?
Важно учитывать, что API не всемогущи и вы получите только те функции, которые заложил разработчик. Например, если помимо курса валюты вы захотите получить еще и прогноз погоды в Москве обращаясь к API центрального банка РФ, то увы у вас этого не получится. Для добавления каждой такой функции программист должен разработать ее.
Из этого следует, что API состоит из двух частей:
- интерфейс взаимодействия;
- описание, которое отвечает на вопрос: "А как этой штукой пользоваться?"
У чего есть свои API?
Взаимодействие может быть не только между клиентом и сервером, но и между серверами. Например решили вы полететь на Мальдивы, купили билет на сайте, а он вам еще и погоду показывает. Как же так? Неужели у компании по продаже билетов есть метеорологические датчики по всему миру, которые сообщают о погоде? Конечно нет! Сайт турагентства взаимодействует с каким-то сервисом погоды по API, который как раз и занимается погодными данными.
Кстати API есть не только web сервисов, где общение происходит по протоколу HTTP. API есть и у операционных систем для взаимодействия с ней и железом. Например, если вы создаете аналог instagram, вам необходимо взаимодействовать с API системы, которая уже знает как работать с камерой, а не придумывать, что-то свое с нуля, еще и для миллиона разных устройств.
- У всех операционных систем. Через API реализован ввод данных с клавиатуры, вывод на экран, хранение данных. Разработчики не работают с устройствами напрямую, а пользуются API, которое им предоставляет операционная система.
- У программных библиотек, утилит и фреймворков. Благодаря им разработчик может может использовать уже готовый код для своих потребностей.
- У веб-сервисов. В этом случае API помогает интегрировать одни сервисы в другие.
Чаще всего, под API подразумевают именно третий вариант.
Важно так же отметить, что API - это программный интерфейс работает он без графики, а пользователи могут обращаться к нему либо через GUI- graphical user interface, то есть графический пользовательский интерфейс, либо через вызов определенных функций. Первое делают обычные пользователи, второе — разработчики и тестировщики.
Способы доступа API
По способу доступа все программные интерфейсы можно разделить на три типа:
- Публичные. У них полностью открытый код и разработчики могут использовать их функционал бесплатно. Такие API распространяют с целью продвижения. Например, агрегаторы авиабилетов разрешают встраивать информацию о ценах на сторонние сайты, потому что заинтересованный пользователь может перейти по ссылке и совершить покупку.
- Партнерские. Их создают для продажи клиентам или партнерам компании. Обычно за использование таких API взимают плату.
- Внутренние. Программные интерфейсы разрабатывают внутри компании и применяют для интеграции с другими собственными продуктами.
Преимущества работы с API
Использование сторонних API — одна из основ современной разработки. Такой подход, с одной стороны, позволяет программистам продавать свой интеллектуальный продукт и зарабатывать на его использовании.
С другой стороны, дает возможность применять чужие решения на своих проектах. Благодаря API разработчикам не нужно каждый раз изобретать велосипед, а можно использовать готовый, стабильный и многократно протестированный продукт.
Преимущества использования API:
- Безопасность. Небольшим компаниям трудно соблюдать все правила информационной безопасности при разработке программного продукта. Вместо этого можно воспользоваться готовыми API, которые создали крупные корпорации. Например, так работают модули платежных систем на сайтах.
- Экономия денег. Разрабатывать с нуля всю функциональность приложения - сложно и дорого. Программисты постоянно пользуются готовыми решениями. Например, фреймворками - каркасами приложений или библиотеками - кусками готового кода. Через API они могут подключить готовый модуль, который уже реализовали сторонние разработчики.
- Интеграция с популярными сервисами. Разработчик может написать собственную систему авторизации на сайте, но не собственную картографию. Также зачастую есть необходимость подключить к сайту решения партнеров. Например, интернет-магазины интегрируют у себя модули служб доставки. За все эти взаимодействия отвечают API.