Что такое API?

Опубликовано 16 March 2020

Слышали ли вы когда-нибудь слово «API» и задавались вопросом, что же это такое? У вас есть смутное представление, но вы хотите узнать больше о том, что вы можете сделать с API, и как вы можете его создать? Не волнуйтесь. Я могу помочь!

Давайте вернемся к этому и выберем, что такое API и как создание API похоже (или отличается!) от создания других типов веб-приложений и веб-сайтов. Вот краткий пример того, что такое API, что отличает его, и что вам нужно для его создания.


Интерфейс прикладного программирования (API).


Простыми словами интерфейс API - это инструмент для взаимодействия разных приложений друг с другом.

Зачастую определение  «API» объясняют, как «общедоступный web-API, который отдает данные, вероятно, в формате JSON или XML». В действительности, API - это не база данных или сервер, а набор процедур, протоколов и инструментов для создания программных приложений. По сути, API определяет, как программные компоненты должны взаимодействовать.

Кроме того, API используются при программировании компонентов графического интерфейса пользователя (GUI).


Что такое API?



В этой статье мы определим интерфейсы прикладного программирования  - web-API, которые отдают данные в ответ на обращение клиента.


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


1. Вы отправляете API запрос с описанием того, какая информация вам нужна.

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


Так что можно делать с помощью API?


Рассмотрим пример: кто-то (ваше приложение или  клиент, это может быть веб-браузер) хочет получить доступ к данным или функциям другого приложения. Например, вы хотите получить доступ ко всем записям Вконтакте, в которых упоминается хештег #coronavirus.

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

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

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


Кто создает общедоступные веб-интерфейсы API?


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

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


Чем API отличается от «обычного» проекта, поддерживаемого базой данных?


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

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

Если вы знакомы с созданием приложений на стороне сервера с помощью Java, Ruby, PHP, JS с помощью узла или другого языка, вы, вероятно, признаете необходимость определенных маршрутов: URL-адреса, которые запускают обработчики маршрутов для выполнения определенных действий при получении запроса с некоторыми данными. API имеют маршруты так же, как это может сделать другой сайт, они просто не обслуживают шаблоны на этих маршрутах.


Так что же такое JSON и почему мы его используем?


JSON обозначает нотацию объектов JavaScript и представляет собой способ представления данных, которые выглядят как объекты JavaScript.

Давайте рассмотрим очень типичный объект JavaScript для ресторана, который может выглядеть примерно так:


“restaurant”: {
“name”: “Fish Witch”,
“address”: “214 NE Broadway”,
“zipcode”: “97232”,
“phone”: “503–000–0000”,
“website”: “http://fishwitch.com",
“email”: “hellofishy@fishwitch.com
}


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

JSON везде в современных веб-приложениях. Он читаемый, легкий и отлично работает с приложениями, написанными на JavaScript, так же как и на JavaScript. Но также сравнительно легко заставить приложения, написанные на других языках, читать и генерировать их, в том числе и на Java. Это означает, что к API, возвращающему JSON, можно получить доступ из приложения, написанного на Java, Ruby, Python, JS, PHP и многих других. Это делает API масштабируемым и независимым от платформы. Ага! Масштабируемость! Независимая платформа! Хорошие слова, мощные слова.


Я хочу построить API!


Потрясающе! Создание API полностью доступно любому разработчику, который немного знает о программировании и маршрутизации веб-приложений на стороне сервера, таких как Java Spark, JavaScript Express, ASP.net для C #, Ruby on Rails и так далее.


Что такое API?

Пример простого API, встроенного в Java Spark с использованием библиотеки GSON.


Для создания общедоступного API вам потребуется следующее:

  • Бэкэнд с маршрутизацией, как указано выше
  • База данных, в которой ваше приложение может хранить свои данные. Это может быть сервер базы данных, который вы используете, такой как MySQL или Postgres, или это может быть БД BaaS (бэкэнд как служба), такая как Firebase.
  • Сервер, скорее всего, VPS (виртуальный частный сервер), доступный в Интернете, где может работать ваше приложение. (Вы можете посмотреть на DigitalOcean, Amazon Web Services или Microsoft Azure для этого)


Я хочу привязать API к своему приложению!


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

  • Найдите общедоступный API, который предлагает информацию, к которой вы хотите получить доступ. Убедитесь, что он хорошо документирован и поддерживается. Некоторые сайты, которые предлагают много APIS, являются ProgrammableWeb, AnyApi и public.apis.zone
  • Прочитайте документацию, чтобы убедиться, что API работает для вас. Многие API требуют, чтобы вы зарегистрировали ключ API для доступа к своим данным, или у них есть потоки аутентификации, через которые ваше приложение должно пройти, прежде чем вы сможете получить доступ к информации.
  • Понять форму доступных данных. Если вы еще этого не сделали, попробуйте инструмент Postman, это потрясающее программное обеспечение, которое значительно упрощает многие аспекты работы с API. Он помогает отправлять тестовые запросы в API, чтобы вы могли экспериментировать с полученными данными.
  • Вызовите API из своего приложения и обработайте полученные данные, отображая их в своем приложении! Это самая захватывающая часть. После того, как вы успешно запросите API с помощью такого инструмента, как Postman, вы можете написать код, который интегрирует данные, которые API возвращает в вашу собственную работу, и отображать их для ваших пользователей.

Удачи!