Что такое API? Простое объяснение для начинающих

Этот краткий термин на слуху у всех, кто хоть как-то сталкивался с разработкой. Но далеко не все понимают, что именно он обозначает и зачем нужен. Разработчик Пётр Газаров рассказал об API простыми словами в своём блоге.

Иллюстрация: Digital Turbine

Аббревиатура API расшифровывается как «Application Programming Interface» (интерфейс программирования приложений, программный интерфейс приложения). Большинство крупных компаний на определённом этапе разрабатывают API для клиентов или для внутреннего использования. Чтобы понять, как и каким образом API применяется в разработке и бизнесе, сначала нужно разобраться, как устроена «всемирная паутина».

Всемирная паутина и удалённые серверы

WWW можно представить как огромную сеть связанных серверов, на которых и хранится каждая страница. Обычный ноутбук можно превратить в сервер, способный обслуживать целый сайт в сети, а локальные серверы разработчики используют для создания сайтов перед тем, как открыть их для широкого круга пользователей.

При введении в адресную строку браузера www.facebook.com на удалённый сервер Facebook отправляется соответствующий запрос. Как только браузер получает ответ, то интерпретирует код и отображает страницу.

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

API как способ обслуживания клиентов

Многие компании предлагают API как готовый продукт. Например, Weather Underground продаёт доступ к своему API для получения метеорологических данных.

Сценарий использования: на сайте небольшой компании есть форма для записи клиентов на приём. Компания хочет встроить в него Google Календарь, чтобы дать клиентам возможность автоматически создавать событие и вносить детали о предстоящей встрече.

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

В качестве альтернативы браузер может сделать запрос к API сервера Google, минуя сервер компании.

Чем API Google Календаря отличается от API любого другого удалённого сервера в сети?

Технически, разница в формате запроса и ответа. Чтобы сгенерировать полную веб-страницу, браузер ожидает ответ на языке разметки HTML, в то время как API Google Календаря вернёт просто данные в формате вроде JSON.

Если запрос к API делает сервер веб-сайта компании, то он и является клиентом (так же, как клиентом выступает браузер, когда пользователь открывает веб-сайт).

Пользователь благодаря API получает возможность совершить действие, не покидая сайт компании.

Большинство современных сайтов используют по крайней мере несколько сторонних API. Многие задачи уже имеют готовые решения, предлагаемые сторонними разработчиками, будь то библиотека или услуга. Зачастую проще и надёжнее прибегнуть именно к уже готовому решению.

Многие разработчики разносят приложение на несколько серверов, которые взаимодействуют между собой при помощи API. Серверы, которые выполняют вспомогательную функцию по отношению к главному серверу приложения, называются микросервисами.

Таким образом, когда компания предлагает своим пользователям API, это просто означает, что она создала ряд специальных URL, которые в качестве ответа возвращают только данные.

Такие запросы часто можно отправлять через браузер. Так как передача данных по протоколу HTTP происходит в текстовом виде, браузер всегда сможет отобразить ответ. Например, через браузер можно напрямую обратиться к API GitHub (https://api.github.com/users/petrgazarov), причём без маркера доступа, и получить вот такой ответ в формате JSON:

Браузер отлично отображает JSON-ответ, который вполне можно вставлять в код. Из такого текста достаточно просто извлечь данные, чтобы использовать их по своему усмотрению.

Ещё несколько примеров API

Слово «application» (прикладной, приложение) может применяться в разных значениях. В контексте API оно подразумевает:

  • фрагмент программного обеспечения с определённой функцией,
  • сервер целиком, приложение целиком или же просто отдельную часть приложения.

Любой фрагмент ПО, который можно чётко выделить из окружения, может заменять букву «А» в англоязычной аббревиатуре, и тоже может иметь некоторого рода API. Например, при внедрении в код разработчиком сторонней библиотеки, она становится частью всего приложения. Будучи самостоятельным фрагментом ПО, библиотека будет иметь некий API, который позволит ей взаимодействовать с остальным кодом приложения.

В объектно-ориентированном проектировании код представлен в виде совокупности объектов. В приложении таких объектов, взаимодействующих между собой,  могут быть сотни. У каждого из них есть свой API — набор публичных свойств и методов для взаимодействия с другими объектами в приложении. Объекты могут также иметь частную, внутреннюю логику, которая скрыта от окружения и не является API.

Источник: dev.by
Нашли в тексте ошибку — выделите её и нажмите Ctrl+Enter.
Вакансии
Новые комментарии
"...На мой взгляд, порог входа в ИT снижается. Теперь даже домохозяйка может пройти несколько спецкурсов и начать выполнять несложные таски. Пример из жизни: моя девушка за год научилась адаптивно верстать, знает JavaScript и пробует писать приложения на React.js, хотя по профессии она парикмахер..." "...На фрилансе тоже часто доводилось работать с белорусами, сложилось хорошее впечатление о белорусских разработчиках. Были случаи, когда заказчик просил искать на проект людей не из России или Украины, а именно из Беларуси..." не задумывались, может быть всё дело в том, что в Беларуси пока ещё чуть меньше "парикмахеров в ИТ"? Хотя... ничего... сейчас это дело активно поправляется...
mihail_che
14.08.2018 в 12:49
«Если у тебя нет агашки — покровителя, хорошие проекты ты вряд ли получишь». Зачем «айтишный авантюрист» из Казахстана перебрался в Минск и пробует автоматизировать ЖКХ

Обсуждение

Missing

Кто-то, кто занимается разработкой, но не понимает, что такое API... Ну кто его знает. Может, в нынешнее время курсов, клепающих программистов за пару месяцев, и такое бывает :)

> Пользователь благодаря API получает возможность совершить действие, не покидая сайт компании.

Как-то криво сформулировано. Если немного подумать, то, благодаря API, разработчик может не изобретать заново все-все детали своего велосипеда, а использовать детальки, которые изобрёл/протестировал уже кто-то другой. А пользователь - ну что пользователь? Ему обычно по фигу, сам разработчик с нуля всё писал или что-то использовал. Ему надо, чтобы программа или сайт делали то, что от них ожидают. ;)

B22cf3b2327970a0352447b567a4841a?1534206064
+2

Как-то сложно. Учитывая, что это позиционируется как "простое объяснение для начинающих" - это еще и плохо. Человек не поймет и подумает, что тупой. И никто ж ему не подскажет, что может он и тупой, но конкретно в этом случае - объяснение просто ужасное.

А вот и действенный совет: если вы что-то попытались понять и не смогли, не спешите винить только себя. Поищите материал по этой же теме, но написанный более понятным языком. Кстати, лучше на английском. Потому как при переводе многое корёжится, сами тексты устаревают, терминология размазывается... Например, в вышеупомянутой статье я так и не понял: проблема ли это перевода, или оригинал был несовершенен. Пока неясно.

Missing-male
+2

Что такое API нужно было объяснять 50 лет назад. Последние лет 25 нужно пояснять что такое есть интерфейс концептуально и почему с него нужно начинать. Ну и в конце можно небрежно добавить, что в древности, методы программы, торчащие наружу, называли API. Что тоже интерфейс.


Авторизуйтесь, чтобы оставлять комментарии

Использование материалов, размещенных на сайте, разрешается при условии прямой гиперссылки на dev.by. Ссылка должна быть размещена в подзаголовке или в первом абзаце публикации.
datahata — хостинг в Беларуси