Если вы слышали термин API, но не совсем уверены, к чему он относится, вы попали по адресу. При правильном использовании API-интерфейсы могут действительно улучшить взаимодействие с пользователем и открыть новые возможности для вашего сайта или приложения.
В этом руководстве по API для кодировщиков мы объясним, что именно нужно API, чтобы быть API. Мы также рассмотрим наиболее распространенные и популярные API-интерфейсы на сегодняшний день, те, которые не полностью поддерживаются, но на которые стоит обратить внимание, и, наконец, места, которые нужно добавить в закладки, чтобы услышать последние новости.
Содержание статьи
Что делает API чем-то?
Когда вы пишете код на любом языке, вы почти наверняка будете использовать ряд API, не зная. В своей простейшей форме API (интерфейс прикладного программирования) представляет собой четко определенную спецификацию для взаимодействия между двумя программными компонентами. API-интерфейсы могут принимать различные формы, но обычно они включают в себя некоторую комбинацию функций или методов и структур данных.
По сути, они предоставляют готовые функциональные возможности, которые вы, как программист, можете использовать для создания своего собственного приложения. Java поставляется с базовым набором API-интерфейсов в его пакетах java. *, Которые предоставляют базовые функциональные возможности языка, с которым знакомы все программисты Java.
Именно эти API-интерфейсы позволяют нам создавать значимые функциональные возможности в программном обеспечении, которое мы пишем. Конечно, программные компоненты должны были взаимодействовать с самого начала вычислений, но то, что заставляет нас описывать что-то как API, — это концепции стандартизации, открытости и повторного использования, где базовая функциональность предоставляется вместе с некоторой документацией, которая позволяет любому чтобы прийти и использовать его.
Органы по стандартизации и производители браузеров постоянно прилагают усилия к тому, чтобы внедрить новые веб-интерфейсы API, которые упростят создание сайтов и приложений или сократят разрыв между браузером и собственным программным обеспечением. Следование последним достижениям и принятие новых API, если они хорошо поддерживаются, могут упростить вашу жизнь и обеспечить современный опыт для ваших пользователей.
Что такое API-интерфейс браузера?
В контексте Возможно, вы уже подумали об API в виде услуг, предоставляемых третьими сторонами. Например, Google предоставляет API Карт Google, который вы можете использовать в качестве разработчика для интеграции картографирования, просмотра улиц, навигации и других данных Google в свое приложение.
Это включает в себя импорт сценариев, размещенных на серверах Google, с последующим использованием объектов. и функции из этих сценариев в соответствии с документацией API, которую они предоставляют. Подобные API, как правило, представляют собой то, что мы называем API-интерфейсами на стороне сервера.
Однако вы, возможно, никогда не задумывались о том, что базовая функциональность JavaScript, встроенная в браузер, также состоит из набора API, которые постоянно обновляются. Эти клиентские API предоставляют многие базовые функции, которые считаются само собой разумеющимися в JavaScript, такие как управление DOM, встраивание графики или звука или взаимодействие с устройством, на котором вы работаете.
Скорее, чем вы Вы будете читать документацию для многих из них онлайн при создании сайта или приложения. Эти API, как правило, основаны на единой спецификации, которая гарантирует, что все производители браузеров последовательно реализуют эту функциональность, тем самым гарантируя, что ваш код работает в любом браузере.
API-интерфейсы, широко используемые сегодня
Вся экосистема JavaScript построен из API. Вот некоторые из крупных, с которыми вы, вероятно, уже сталкивались.
Canvas и SVG являются наиболее очевидными примерами широко используемых API браузеров. И canvas, и SVG предоставляют простой набор точек входа и функций JavaScript для выполнения своих соответствующих задач. В наши дни мы можем добавить более свежий WebGL к смеси для 3D-графики.
XMLHTTPRequest в течение некоторого времени был API-интерфейсом JavaScript, используемым для отправки асинхронных запросов на сервер. Это может позволить вам, например, получать данные с сервера и обновлять страницу без перезагрузки полной страницы. Его название — анахронизм, так как он работает как с JSON, так и с XML. Скорее всего, он будет заменен более поздним Fetch API.
Веб-сокеты позволяют открывать двухсторонний сеанс связи между браузером и сервером. Это позволяет серверу предоставлять обновления пользователю без необходимости в браузере опрашивать сервер с интервалом. Сегодня на многих сайтах используются веб-сокеты; в переполнении стека они используются для подачи оперативных уведомлений об ответах на вопросы.
Это может показаться отговоркой, но важно подумать. Даже основные функции JavaScript делают такие вещи, как манипулирование DOM. Думайте об объекте документа как о точке входа. Это означает, что, хотя они могут быть определены в отдельных спецификациях, между новыми API-интерфейсами, которые мы рассмотрим ниже, и основными функциями JavaScript, которые существовали в течение многих лет, есть небольшая принципиальная разница.
Популярные сторонние API-интерфейсы
Это одни из наиболее часто используемых API. Как правило, вам понадобится ключ API от создателя, чтобы использовать их.
Карты Google предлагают чрезвычайно популярный набор API-интерфейсов, которые предоставляют возможности картографирования, просмотра улиц, навигации и других объектов миллионам сайтов. Google предлагает множество API-интерфейсов в зависимости от платформы и функции. Самыми простыми являются базовые встраивания страниц для отображения карты на странице, но есть также множество веб-служб JSON, которые позволяют, например, получать набор указаний для навигации между местоположениями.
Facebook предлагает что-то под названием API Graph, который позволяет веб-сайтам и приложениям получать данные и записывать их в Facebook. Работа с Graph API включает представление контента Facebook в виде набора узлов (и связанных полей данных) и ребер в структуре графа. Он также предлагает Graph API Explorer, который позволяет аутентифицированным пользователям тестировать результаты различных вызовов API.
Twitter предлагает несколько API для различных вариантов использования. Наиболее простым является API Search Tweets, который позволяет выполнять поиск по огромному количеству исторических твитов за определенный период времени и набор критериев. Тем не менее, веб-разработчики могут быть наиболее заинтересованы в Twitter для веб-сайтов, который предоставляет простой способ встроить функциональность Twitter в интерфейс, например, простую кнопку Tweet.
API YouTube позволяет встраивать функции YouTube в вашу страницу и, как и другие в этом списке, позволяет извлекать контент и публиковать контент в Платформа. В частности, из-за высокой пропускной способности, необходимой для его контента, API YouTube, в частности, представляет собой интересное исследование того, как разработчики ограничивают квоту использования API — Google использует текущие «единицы» для определения цены различных операций.
Amazon S3 (Simple Storage Service) является частью предложения Amazon Web Services и предлагает API-интерфейсы REST (и SDK на стороне клиента для упрощения их использования), которые позволяют размещать, изменять и удалять контент в хранилище. Многие сценарии использования для этого находятся на стороне сервера, но учебные пособия Amazon охватывают такие случаи, как загрузка фотографий в облако из браузера.
API-интерфейсы браузера для просмотра
Не все из них готовы к началу — пока, но их стоит использовать в будущем.
Возможно, вы уже видели, что страницы запрашивают разрешение на использование вашего местоположения. Geolocation API, доступ к которому осуществляется через объект navigator.geolocation позволяет сайту или приложению определять местоположение пользователя на основе комбинации информации, такой как GPS, Wi-Fi и мобильный сигнал. Он поддерживается во всех основных браузерах, хотя его можно использовать только с подключением по HTTPS.
Не путать с мобильными push-уведомлениями, Push API позволяет веб-приложениям получать сообщения, отправленные с сервера, даже если приложение не в фокусе или приложение не загружено. Для этого очень сильно зависит от работника сервиса, работающего в фоновом режиме. Здесь есть целый ряд интересных приложений для предоставления обновлений в режиме реального времени в веб-приложениях.
API уведомлений позволяет страницам отображать уведомления вне контекста браузера. Пользователю потребуется предоставить явное разрешение, но после этого уведомления можно сгенерировать, создав новый объект Notification () . Это широко поддерживается на настольных компьютерах, хотя и не на мобильных устройствах, но особенно интересны возможности, которые могут возникнуть в результате объединения этого с Push API для предоставления фоновых уведомлений пользователю.
WebVR, как вы могли ожидать, разработан для добавления поддержки устройств виртуальной реальности, таких как Oculus Rift и HTC Vive, в браузере. API WebVR позволит веб-разработчикам напрямую использовать данные о положении и движении с устройства для использования на странице (скорее всего, в тандеме с WebGL). Это может быть очень захватывающим для будущих проектов, но в настоящее время является экспериментальным, с ограниченной поддержкой (по устройствам) в Edge, Firefox и Chrome.
Возможно, сейчас мы находимся в немного сомнительной территории. Вызванный с помощью метода navigator.vibrate () API-интерфейс Vibration, возможно, является необходимостью в стремлении приблизить веб-приложения к собственным. Тем не менее, он также явно склонен к злоупотреблениям, и в первые дни были единичные сообщения о том, что реклама использует его без согласия, чтобы привлечь внимание пользователя. В настоящее время он поддерживается в Edge и Safari, поэтому пользователям iPhone не повезло.
Вот пример того, когда API этого не делают. API состояния батареи был разработан, чтобы делать более или менее то, что вы могли ожидать от его имени. В нем представлен метод navigator.getBattery () который возвращает обещание с объектом батареи, который затем можно использовать для прослушивания различных событий, связанных с состоянием батареи. В настоящее время он поддерживается только в Chrome и Opera, и вряд ли сделает его намного дальше из-за проблем с конфиденциальностью.
Если вы хотите увидеть, как выглядит противоречие в мире веб-API, не смотрите дальше Расширения зашифрованных носителей. EME позволяет воспроизводить HTML5-видео контента, защищенного DRM. Против этого были выдвинуты возражения на том основании, что он вводит собственные компоненты в преимущественно открытую и бесплатную экосистему сети. Независимо от вашей перспективы, спецификация здесь, чтобы остаться.
Где я могу узнать больше?
Вот некоторые из лучших мест, где можно быть в курсе, как новые API emerge.
Сеть разработчиков Mozilla (MDN) предоставляет один из большинства доступны всесторонние источники информации о веб-технологиях. В дополнение к документации по всем последним API, он также включает в себя учебные пособия и примеры кода, иллюстрирующие их использование. Это почти всегда хорошая отправная точка при изучении чего-то нового.
Спецификации W3C не всегда просты и, вероятно, не для повседневного использования. Однако, если вам интересны некоторые детали спецификаций, вы хотите следить за тем, что может произойти в будущем, но еще не было реализовано в браузерах, или вам просто интересно узнать, как появятся спецификации, стоит посмотреть .
Если вы когда-либо были озадачены растущим списком технологий и API-интерфейсов, составляющих современный интернет, эта страница может стать отличным справочным источником. Для вашего удобства в нем перечислены все компоненты современных платформ HTML, CSS и JavaScript, включая API. Если не более того, это замечательная попытка навести порядок в хаотической экосистеме.
Поддержка браузером последних API-интерфейсов может быть проблемой, и трудно понять, действительно ли что-то действительно готово к использованию. Can I Use предоставляет отличный источник информации о состоянии поддержки браузером API, а также других веб-функций.
Эта статья была первоначально опубликована в выпуске 268 журнала Creative Web Design Веб-дизайнер . Подписаться на веб-дизайнера сейчас .
Подробнее: