API — это способ обмена информацией между сайтами, программами и приложениями. Можно также сказать, что это набор правил, по которым осуществляется такой обмен.
Пользователями программ и сайтов могут быть не только люди, их также используют другие сайты и приложения. Они могут обмениваться данными между собой без участия человека. Это удобно, когда позаимствовать готовое решение проще, чем создавать с нуля собственное.
Чтобы на сайте или в приложении отображалась актуальная погода, можно подключить API сервиса Яндекс.Погода:
Интерфейс приложения — это система, которую должен освоить пользователь, чтобы заставить работать внутренний механизм. Если нажать определенную кнопку на приборной панели автомобиля, стекло окна начнет опускаться. Ни пассажир, ни водитель не смогут увидеть механизм, который опускает стекло, они увидят только конечный результат. Точно так же, нажимая на кнопку в интерфейсе приложения, мы не видим механизмы, которые открывают нужную нам страницу.
Именно по такому принципу API помогает разработчикам настроить взаимодействие между своей и сторонней программой, не задумываясь о деталях их устройства. Можно не знать, как организован backend сайта Центробанка, но вывести на своем сервисе курсы валют через его API. Так, например, на странице для разработчиков «Знакомство с API ВКонтакте» сказано: «Вам не нужно знать в подробностях, как устроена база, из каких таблиц и полей каких типов она состоит, — достаточно того, что API-запрос об этом “знает”».
Настройка взаимодействия между двумя сервисами — это своеобразный договор, в котором прописаны условия сотрудничества. В API-документации каждого сервиса указаны условия, на которых сторонние сайты или приложения могут использовать его функционал. Например, та же социальная сеть ВКонтакте предоставляет разработчикам возможность использовать id пользователей, видеозаписи, документы, карточки товаров на сторонних сервисах.
Для корректной работы с API в документации прописывают конкретные операции и методы, с помощью которых можно их выполнить:
Методы поделены на группы в соответствии с разделом контента: photos, videos, docs, likes и другие. Полный список методов можно найти на специальной странице API-документации ВКонтакте.
По условиям документации, чтобы выполнить каждое действие с помощью методов, нужно оформить запрос по определенным правилам. Например, для ВКонтакте нужно указать:
В ответ на запрос сервер возвращает JSON-объект с запрошенными данными, он будет выглядеть так:
Если разложить ответ на составляющие, то:
Метод получения информации о пользователе используют, например, сайты с возможностью авторизации через аккаунт ВКонтакте. Так сайт может привязать окошко своего сообщества в этой соцсети, показать пользователю, кто из друзей в нем уже состоит, предложить поделиться страницей в профиле или поставить «Нравится» прямо на странице сайта.
Так как с помощью API разработчики получают возможность использовать готовые инструменты в своих сервисах, этот метод дает сразу два стратегических преимущества:
На каком языке написана программа, для API не имеет значения. Интерфейс — это универсальный переходник, который работает со всеми типами устройств, операционными системами и языками программирования.
##Какие еще функции входят в API
API не накладывает строгих ограничений на возможный набор функций — можно добавить в интерфейс любой функционал, который будет полезен пользователям или сторонним компаниям. Главное, чтобы каждая функция имела строгую структуру:
Разработчики предоставляют платный доступ к своим API. Например, у 2GIS можно запросить доступ к картам, у Яндекс.Маркета — сведения о товарах, у HeadHunter — возможность размещать виджеты вакансий на своем сайте. Через API социальных сетей, таких как Twitter, Facebook, ВКонтакте, на многих сайтах реализована система авторизации.