Что такое API | Интеграция веб-сайта с приложением

Что такое API | Интеграция веб-сайта с приложением

Что такое API?

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

Зачем нужно и где используется?

Так как API это средство или инструмент интеграции, чего-то (в нашем случае мы буде рассматривать веб-сайт – интернет-магазин) то следовательно используется для:

  • интеграции веб-сайта frontend части с backend
  • интеграции веб-сайта с мобильными приложениями на iOS/Android
  • интеграции веб-сайта с другими сайтами/службами: 1С, ERP, SRM, CRM

 

Интеграции веб-сайта frontend части с backend

Многие интернет-магазины, веб-сайты и их фреймворки уже имеют свой шаблон или тему, где реализована фронтальная часть, следовательно зачем интегрировать или придумывать то, что уже есть?

Да, все верно, не каждая интеграция или решение будет уместным в каком то отдельно взятом случае. Решение по внедрению и использовании определенной технологии не приходит спонтанно, а является решением какой то задачи. В нашем случае есть задача максимально ускорить действующий интернет-магазин на CMS Magento. Под ускорением имеется ввиду сократить время загрузки страниц магазина с 1,5 секунды до 0,2 секунды. CMS Magento имеет достаточно “сильный” и богатый функциями бекенд, расширяемость, масштабируемость но фронтальная часть может достаточно долго загружаться и отчасти это зависит от архитектуры самой системы.

Временная шкала работы классов и функций при загрузке категории с товарами

 

Решением задачи по ускорению работы страниц, будет уход от генерации страниц Magento в сторону отдельной темы – приложения, которая будет общаться с магазином через АПИ. Все основные страницы будут созданы за ранее, они будут разделены на логические модули: главная страница, категория, товар, корзина, личный кабинет, контент будет доставляться в браузер в виде JSON данных, которые, в зависимости от частоты изменения и важности можно сохранять (кешировать) например в Redis.

Преимуществом такого решения безусловно является скорость и безопасность. Такой магазин будет сложно взломать или пытаться подобрать пароль к админ панели, которая к стати будет отсутствовать:-) Для администрирования такого магазина можно использовать отдельный домен и адрес (URL)

SQL запросы к БД тоже будут отсутствовать, ибо мы получаем уже готовые, сформированные JSON данные с которыми работает Java Script.

Для кого подходит такое решение

  • В первую очередь для фешн-сайтов, где по большей части присутствуют только медиа данные и немного текста и по сути такие сайты являются SPA (single page application)
  • Сервисы доставки товаров или заказа услуг
  • Любые веб-сайты и интернет-магазины, которые позиционируют себя как одно-страничные приложения или ориентированы на скорость заказа

Минусом такого решения конечно будет большое время реализации и соответственно стоимость.

Решение может включать в себя такой стек технологий: Angular, React, Modernizr, jQuery

 

Интеграция веб-сайта или магазина с мобильным приложением через АПИ

 

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

Есть и более “серьезные” мобильные приложения, которые не только клонируют некоторые функции интернет-магазина, но и расширяют и дополняют его, другими, особенными для мобильных приложений функциями. Например, для интернет-магазина, который продает спортивное питание, будет очень кстати иметь мобильное приложение, через которое клиент может найти себе тренера и выбрать программу приема спортивного питания, а так же получать уведомления о необходимости принять это же питание по какому то расписанию. При этом дополнительно разрещить пользователю выбрать удобный канал для уведомлений: SMS, Push notification, Email и время приема питания (в основном это до или после тренировки).

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

 

 

 

 

Интеграция веб-сайта с другими сервисами, типа 1С, ERP, SRM, CRM

АПИ можно использовать не только для реализации приложений по взаимодействию с пользователем/клиентом, но и для интеграции в бизнес-логику приложений, которые отвечают за бизнес-процессы самого предприятия. Обычно выгружают такие данные как информацию о заказах, клиентах, историю посещений страниц, которая содержит гео-данные, ип адреса, данные о браузерах и устройствах.

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

eCommerce/Magento Developer, PHP architect, based in Ukraine