Что такое API?

Предисловие

В интернете очень много информации о том как разработать свою API, но очень мало доступного материала. Особенно такого, который поймут новички или уже более-менее опытные разработчики, которые только подошли к изучению данного инструмента. Это будет несколько статей в которых я расскажу что такое API, как работать с чужими, открытыми API, какая разница между API и Rest Full API, как написать свою для сайта на PHP, как написать API для сервера баз данных на Python и как очень просто написать свою апиху на Django.

Что такое API?

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

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

Когда мы вводим адрес сайта в браузере на удалённый сервер отправляется соответствующий запрос. Как только браузер получает ответ, то интерпретирует код и отображает страницу. Но вот браузер отображает ответ в виде html страницы. Вроде все хорошо, но вот только для разработки приложения нам нужен ответ в формате json и только те данные которые нам будут полезны. В принципе можно и пропарсить html и получить данные, но это не удобно и в корне не правильный подход. Верстка меняется куда чаще чем API что может усложнить обновление приложения. Так же не стоит забывать что работа с парсингом затратна по ресурсам и ваш код будет очень большой. Когда для работы с API иногда достаточно пары строк.

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

Преимущества API

Теперь давайте выясним какие преимущества мы получим если разработаем API для своего сайта. Допустим у нас сайт блог. Вы публикуете на нём свои статьи, пользователи могут зарегистрироваться и оставлять комментарии. В какой-то момент мы захотели разработать мобильное приложения для нашего сайта. Вот в этот момент на и нужно разработать свою API для получения всех статей, для регистрации и авторизации пользователей и для отправки комментариев. Когда мы будем получать информацию от сервера мы будем отправлять ему GET запрос, или же запрос на чтение данных, а в ответ получим список статей и список комментариев к ним. Если нам нужно пройти регистрацию, то нам нужно совершить запись данных с формы приложения в базу данных нашего сайта. Для этого после пройденных проверок мы отправим POST запрос или же запрос записи данных. Наш скрипт обработчик запросов будет понимать что от него хотят и совершать нужное действие с данными.

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

Причины использования API

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

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

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

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

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