От автора: сначала интерфейсы программирования приложений могут показаться вам очень сложными, но как только вы поймете принцип их работы и зачем они нужны, вы осознаете, насколько это простой инструмент. Вам откроется целый ряд новых возможностей в веб-разработке.
API можно расшифровать как application programming interface или интерфейс программирования приложений – метод получения данных из запросов. В старых калькуляторах под API можно понимать математический API: устройство с числами и оператором для вычисления результата. На уровне физики под API можно рассматривать популярную в США игрушку Rock ‘Em Sock ‘Em Robot: вы дергаете рычажки, а роботы дерутся.
API являются одним из основополагающих компонентов вычислительных систем. Без интерфейсов программистам приходилось бы писать каждое приложения с нуля. С помощью API программисты могут намного быстрее делать приложения: чтобы не кодить кнопку «Закрыть окно», можно просто запросить ее из API операционной системы и импортировать функционал в свое приложение, не задумываясь о работе и производительности пользовательского интерфейса. API также работают и на уровне железа, позволяя общаться различным устройствам и компонентам.
Веб API
В интернете API принимают две формы: клиентские и серверные.
Клиентские API. В спецификации HTML5 есть несколько API, которыми могут пользоваться разработчики, к примеру, Fullscreen и Dialog API. Доступ к ним осуществляется через JS, данные интерфейсы расширяют функционал браузера и заменяют стандартные приложения. Данный функционал оказал огромное влияние на веб-сайты под управлением API, как на веб-приложения для компьютеров, так и для мобильных устройств.
Серверные API. Множество компаний выпускают собственные API: к примеру, у Netflix есть API, показывающее подписчикам бесплатные фильмы прямо во время поиска. В сети тысячи различных API: одни из них используются открыто, другие же только в корпоративных веб-сайтах. Все данные доступны при запросе с сервера.
В этой статье сделан упор на вторую форму.
Работа с веб API
У Google Maps есть полноценное API, увидеть его можно, просто открыв карту в браузере. К примеру, адресная строка ниже: //www.google.ca/maps/@51.0890235,-114.0293939,12z
… возьмем мое текущее положение, город Калгари. Если изменить первые две пары чисел после символа @ (т.е. широту и долготу), то мы изменим информацию, запрошенную из Google Maps API, тем самым получим совершенно другой результат.
В реальности веб-сайты делают запросы к API через JavaScript, PHP, Ruby или другой язык программирования. Большинство интерфейсов возвращают данные в формате JSON, XML или HTML; множество сайтов предоставляют все три варианта. Некоторым API нужен уникальный ключ (с помощью которого сервис может отслеживать запросы и использовать их), другим же наоборот ключ не нужен. У некоторых API хорошая документация, у других нет.
Один пример: API OpenWeatherMap может принимать URL, в котором указывается город и ключ: //api.openweathermap.org/data/2.5/weather?q=Calgary&appid=91f05e4330f6e85cab273b8b1ad8bb71
Если вбить адрес выше в строку браузера, то вам вернется следующий код:
1 |
{"coord": {"lon":-114.09, "lat":51.05}, "weather":[{"id":800, "main":"Clear", "description":"clear sky", "icon":"01n"}], "base":"cmc stations", "main":{"temp":281.645, "pressure":868.29, "humidity":70, "temp_min":281.645, "temp_max":281.645, "sea_level":1028.59, "grnd_level":868.29}, "wind":{"speed":1.07, "deg":175.501}, "clouds":{"all":0}, "dt":1462251211, "sys":{"message":0.0031, "country":"CA", "sunrise":1462277067, "sunset":1462330973}, "id":5913490, "name":"Calgary", "cod":200} |
Как видно, данные в формате JSON. В данной строке содержится информация о погоде на сегодня для города Калгари. Обычному пользователю данные никогда не будут представлены в таком формате: я бы сделал запрос через JS или другой язык программирования, еще лучше вместе с хелпер скриптом, который поможет структурировать формат возвращаемых данных, а результат представил бы с помощью красивого семантического HTML кода. API помогают создавать более функциональные сайты, что невозможно, если делать их самому.
Запросы к API и возвращаемые данные могут быть более точными, все зависит от строки запроса: я могу запросить скорость ветра для своего текущего местоположения или исторический рекорд температуры сегодняшнего дня.
В следующих статьях я покажу множество различных способов применения API.
Источник: //thenewcode.com/
Редакция: Команда webformyself.