Что такое REST API?

Что такое REST API?

API - это особый интерфейс приложения (Application Programming Interface), который позволяет разным программам взаимодействовать с вашей системой и её данными.

В основном, когда в WEB мы говорим об API, то имеем в виду REST API. А что такое REST API?
REST "Representational state transfer" - это архитектура, которая помогает спроектировать систему взаимодействия с вашими сервисами достаточно просто и удобно.

Стандартный путь общения с API-интерфейсом - клиент делает запрос на сервер для получения или модификации данных, получает результат операции (результат, обычно, в виде JSON, который легко расшифровать и использовать в разных языках программирования), и обрабатывает, в зависимости от программной реализации.

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

Чем полезен API?

Очень часто, когда продукты набирают популярность, масштабируются - возникает необходимость поддержки одновременно несколько платформ Andoid, Windows, IOS. И перед этой компанией стоит задача построить систему таким образом, чтобы все пользователи всех платформ имели актуальные данные (из одной базы данных).

В итоге, для решения этой задачи, мы должны создать такой интерфейс, благодаря которому можно будет из любой ОС получить одни и те же данные. Для этого, нужен единый сервер с данными и интерфейс, по которому эти данные можно будет передавать.

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

API бывают приватными, публичными...

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

Публичное API - наоборот, доступно всем пользователям.
Так же, важное уточнение, что публичное API может быть с авторизацией (например, api vk.com, где каждый из запросов сопровождается добавлением секретного токена в запрос), или полностью публичным, которое доступно всем желающим (например, api github, в котором не обязательна авторизация).

Жиза

Большинство крупных сайтов, (как vk, telegram, twitter) имеют открытый API, который позволяет разработчикам писать программы, ботов, взаимодействующих с данными этих компаний, из своих скриптов. И это взаимодействие, зачастую, предусматривает не только возможность получения, но, так же, и добавления данных (создание постов в группе vk, отправка пользователю запроса в друзья, сообщения и т.д.).

Пользуюсь каждый день, а ты?

А что, если я скажу, что с API вы сталкиваетесь каждый день по несколько раз, вы поверите?
Большинство приложений, которыми вы пользуетесь ежедневно, как раз и используют такой интерфейс.

Но, помимо приложений, подобные реализации применяет множество WEB-сайтов. Которые делают запрос на собственные сервера, для получения данных, и, используя JavaScript, интерактивно обрабатывают полученный результат, и, вместо полной перезагрузки страницы, динамически заменяют только определённый участок html-разметки.

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