Что такое API: подробно и простыми словами

0
2456
views

Сокращенный перевод статьи «Explain API in Plain English».

Photo by DocuSign on Unsplash

Вам любопытно, что такое API, что он делает и для чего служит? Сейчас я вам расскажу!

Взявшись за изучение веб-технологий, вы неизбежно столкнетесь с понятием «API». Стоит отметить, что многие новички испытывают трудности с пониманием этой концепции. В конечном итоге они получают некое смутное представление о ней и считают, что разобрались.

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

Итак, что такое API?

API расшифровывается как Application Programming Interface. Переводится это как программный интерфейс приложения или интерфейс прикладного программирования. Звучит загадочно и одновременно пугающе. Что это значит? Что конкретно понимается под API?

Я не буду давать туманные определения, полные технического жаргона: их полно в других источниках. Объясняю по-простому:

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

Вот это и есть API.

«Это и все?!»

В общем, да.

«А такое вычурное название откуда взялось?»

Давайте разберемся! Для этого построим на JavaScript API, позволяющий приготовить ужин (виртуально, конечно).

Код нашего API, хранящийся в компьютере

Как я уже говорил, API может храниться в памяти локального компьютера или на удаленном сервере. У нас — локальный вариант. Мы назовем его API, но название может быть любым.

Это JavaScript-файл, который я загрузил и сохранил в локальную папку.

Я могу использовать этот отрывок кода при загрузке своих веб-страниц:

В этом коде есть немедленно вызываемая функция (IIFE), которая будет запускать сама себя.

В самом низу она будет возвращать объект, возвращающий три свойства.

Мы можем вызывать эти методы, используя точечный оператор.

Вызов методов, описанных в нашем API

Вызывая эти методы подряд, мы получим такой вывод:

У нас есть функция steamVeggies(), вызывающая другую функцию — addSpices().

Вызвать функцию addSpices() напрямую нельзя, но я могу вызвать steamVeggies(), которая запустит addSpices().

Этот код всего лишь выводит в консоль определенные сообщения. Но важно не то, что он делает, а то, что это объект, имеющий имя. Это может быть отдельный файл, который я смогу скачать и использовать, а может быть файл, хранящийся на удаленном сервере. Но в любом случае у меня есть возможность использовать код из этого файла в своем скрипте.

Итак, я пишу «API», ставлю точку, и появляется то, что вернула эта функция.

Это методы, которые мы можем вызывать:

Допустим, я могу вызвать функцию step1(), а затем мне понадобится функция step2().

Но в этом API есть и другие функции, которые мы не можем вызвать напрямую, например addSpices().

Если мы попытаемся ее вызвать, то получим ошибку:

Итак, у нас есть некий код, спрятанный от нас. Мы не знаем, что он делает. Но есть и некоторые вещи, открытые для нас, т. е. публичные. Мы можем иметь доступ к ним из нашего кода. В данном случае я могу использовать step1(), step2() и step3(). Именно эти функции доступны для нас.

«Интерфейсная» часть нашего программного интерфейса приложения — именно эти три метода:

Это «интерфейсная» часть кода

Для меня эти методы играют роль интерфейса, позволяющего взаимодействовать с этим API.

А это «программная» часть нашего кода

Теперь понятно, откуда такое название — программный интерфейс приложения?

Напоминаю, что мы использовали имя API, но это не обязательно. Название может быть совершенно любое.

Главное, что нужно осознавать, это наличие некоего черного ящика, скрытого от нас. Все наши знания мы черпаем из документации, где указаны методы, которые мы можем использовать в своих программах.

Вот это и есть API. Написанный кем-то другим код, к которому я имею доступ и могу использовать в собственном коде для решения каких-то задач.

Этот код может лежать на удаленном сервере.

Он может лежать на моем компьютере.

Возможно, для обращения к нему мне придется использовать HTTP и делать AJAX-запросы для получения информации.

Занимаясь веб-разработкой, вы можете встретить термин RESTful API. Не пугайтесь. Это тоже код, только следующий определенному архитектурному стилю и использующий HTTP-запросы для доступа к данным. Но по сути это просто код, написанный кем-то другим, чтобы немного облегчить нам жизнь!

API в контексте веба

API для веба — то же, что чем были телефонистки на телефонных станциях!

Телефонистки устанавливали соединение с абонентами, а API обеспечивает соединение между приложениями или программами. На удаленном сервере API — это та часть, которая получает запросы и отсылает ответы, когда вы переходите на какой-нибудь сайт в браузере.

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

Здесь происходит следующее. Ваш запрос направляется к коду, который написал кто-то другой и которых хранится на сервере. Этот код дает вам доступ к странице, которая хранится где-то еще на удаленном сервере.

То есть ваш запрос не идет напрямую на сервер! Он идет к API, который решает, что с ним делать.

Клиент — слева, Сервер — справа, а API — голубые задвижки

API также делает возможным взаимодействие между двумя сайтами и изменение данных. Например, если на веб-странице кликнуть кнопку «Поделиться в Twitter», это запустит взаимодействие с вашим аккаунтом в Twitter и изменит его путем добавления нового твита.

API может принимать разные формы в зависимости от того, где он используется. Соответственно меняется и название:

  • Открытые или публичные API. Эти API выложены в открытый доступ для разработчиков и других пользователей (с минимальными ограничениями).
  • Партнерские API открыты только для стратегических деловых партнеров. Они не доступны публично, к ним могут обращаться только те, у кого есть право доступа.
  • Внутренние или приватные API. Эти API спрятаны от внешних пользователей и открыты только внутренним системам. Ими пользуются разные команды разработчиков в рамках одной компании, что позволяет им повысить продуктивность.

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

Что вы узнали из этой статьи

  • API — это код, который написан не вами, но имеет методы, позволяющие вам его использовать.
  • В контексте веба, API — часть удаленного сервера, которая получает запросы и отсылает ответы, когда вы заходите на какой-нибудь сайт.
  • API может принимать разные формы в зависимости от того, кто может им пользоваться (открытые, партнерские, внутренние API).
  • Если выражаться кратко, API — это код, позволяющий двум программам коммуницировать друг с другом.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here