Проблема api приложения. API: что это такое – описание и виды апи

Проблема api приложения. API: что это такое – описание и виды апи
Проблема api приложения. API: что это такое – описание и виды апи

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

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

Всемирная паутина и удалённые серверы

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

При введении в адресную строку браузера www.facebook.com на удалённый сервер Facebook отправляется соответствующий запрос. Как только браузер получает ответ, то интерпретирует код и отображает страницу.

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

API как способ обслуживания клиентов

Многие компании предлагают API как готовый продукт. Например, Weather Underground продаёт доступ к своему API для получения метеорологических данных .

Сценарий использования: на сайте небольшой компании есть форма для записи клиентов на приём. Компания хочет встроить в него Google Календарь, чтобы дать клиентам возможность автоматически создавать событие и вносить детали о предстоящей встрече.

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

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

Чем API Google Календаря отличается от API любого другого удалённого сервера в сети?

Технически, разница в формате запроса и ответа. Чтобы сгенерировать полную веб-страницу, браузер ожидает ответ на языке разметки HTML, в то время как API Google Календаря вернёт просто данные в формате вроде JSON.

Если запрос к API делает сервер веб-сайта компании, то он и является клиентом (так же, как клиентом выступает браузер, когда пользователь открывает веб-сайт).

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

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

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

Таким образом, когда компания предлагает своим пользователям API, это просто означает, что она создала ряд специальных URL, которые в качестве ответа возвращают только данные.

Такие запросы часто можно отправлять через браузер. Так как передача данных по протоколу HTTP происходит в текстовом виде, браузер всегда сможет отобразить ответ. Например, через браузер можно напрямую обратиться к API GitHub (https://api.github.com/users/petrgazarov), причём без маркера доступа, и получить вот такой ответ в формате JSON:

Браузер отлично отображает JSON-ответ, который вполне можно вставлять в код. Из такого текста достаточно просто извлечь данные, чтобы использовать их по своему усмотрению.

Ещё несколько примеров API

Слово «application» (прикладной, приложение) может применяться в разных значениях. В контексте API оно подразумевает:

  • фрагмент программного обеспечения с определённой функцией,
  • сервер целиком, приложение целиком или же просто отдельную часть приложения.

Любой фрагмент ПО, который можно чётко выделить из окружения, может заменять букву «А» в англоязычной аббревиатуре, и тоже может иметь некоторого рода API. Например, при внедрении в код разработчиком сторонней библиотеки, она становится частью всего приложения. Будучи самостоятельным фрагментом ПО, библиотека будет иметь некий API, который позволит ей взаимодействовать с остальным кодом приложения.

В объектно-ориентированном проектировании код представлен в виде совокупности объектов. В приложении таких объектов, взаимодействующих между собой, могут быть сотни. У каждого из них есть свой API - набор публичных свойств и методов для взаимодействия с другими объектами в приложении. Объекты могут также иметь частную , внутреннюю логику, которая скрыта от окружения и не является API.

В ероятно, вы видели термин «API». Операционная система, веб-браузер и обновления приложений часто объявляют о новых API для разработчиков. Но что такое API?

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

Термин API является аббревиатурой, и он означает «Интерфейс прикладного программирования».

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

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

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

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

API упрощают жизнь для разработчиков

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

Например, если Вы хотите встроить веб-браузер для отображения одной или нескольких веб-страниц, Вам не нужно программировать собственный веб-браузер с нуля только для Вашего приложения. Вы
можете использовать WKWebView API для встраивания веб-браузера WebKit (Safari) в приложение.

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

Это относится ко всем платформам. Например, Вы хотите создать диалоговое окно в Windows? Для этого есть API . Хотите поддерживать аутентификацию отпечатков пальцев на Android? Для этого есть API , так что Вам не нужно тестировать каждый датчик отпечатков пальцев любого производителя Android. Разработчикам не нужно повторно изобретать колесо снова и снова.

API-интерфейсы управляют доступом к ресурсам

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

Например, если Вы когда-либо посещали веб-сайт и видели в своем браузере сообщение о том, что веб-сайт запрашивает Ваше точное местоположение, этот веб-сайт пытается использовать API геолокации в Вашем веб-браузере. Веб-браузеры предоставляют API-интерфейсы, чтобы веб-разработчикам было легко получить доступ к Вашему местоположению — они могут просто спросить «где вы?», и браузер сделает тяжелую работу по доступу к GPS или соседним сетям Wi-Fi, чтобы найти Ваше физическое местоположение.

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

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

Файловые системы, которые используют разрешения, как и в Windows, Mac и Linux, имеют те права, которые применяются API файловой системы. Типичное приложение не имеет прямого доступа к необработанному физическому жесткому диску. Вместо этого приложение должно получить доступ к файлам через API.

API используются для связи между службами

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

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

Это относится ко многим различным онлайн-сервисам. Существуют API для запроса перевода текста из Google Translate или отображения комментариев Facebook или твитов из Twitter на веб-сайте.

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

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

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

Типы

  • возвращающие. На запрос стороннего приложения какого-либо метода с заданными параметрами сервер дает запрашиваемую информацию в определенном формате;
  • изменяющие. Клиент вызывает некоторую функцию сервера, которая вводит новую информацию или изменяет на нем определенные настройки.

API Яндекс.Директа

Для продвижения сайтов эффективен API .

  1. На его базе разработчики могут создавать приложения, которые напрямую взаимодействуют со службой поисковой системы. Такие программы позволят рекламодателям гибко управлять масштабными , получать статистические отчеты по каждой из них, точно прогнозировать бюджеты.
  2. Рекламные агентства с помощью API Директа могут просмотреть весь список своих клиентов, клиенты – представителей.
  3. Если определенные фразы, используемые для поисковой оптимизации , дают низкий CTR в контекстной рекламе, показ по ним можно автоматически отключить. На тематических площадках через API можно задавать ставки, определенные доноры могут быть удалены.
  4. API Яндекс.Директа имеет SOAP-интерфейс, т.е предоставляет широкий выбор языков программирования для создания приложений. Данный протокол поддерживается такими языками, как Perl, Java, Python и др. Обмен данными также может осуществляться в формате JSON.

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

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

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

Информации об оформленных заказах

Доступные действия (методы) обработки информации о заказах:

  1. Выбор информации о заказе по ID
  2. Выбор информации о заказах по фильтру
  3. Количество заказов по фильтру
  4. Создание заказа
  5. Удаление заказа
  6. Массовое удаление заказов
  7. Выбор всех доступных статусов для заказов
  8. Обновление статуса заказа
  9. Добавление комментария к заказу

Информации о подписчиках

  1. Добавление подписчика
  2. Удаление подписчика
  3. Массовое удаление подписчиков
  4. Выбор данных о подписчиках по фильтру
  5. Количество подписчиков по фильтру

Информации о зарегистрированных пользователях

Доступные действия (методы) обработки информации о подписчиках:

  1. Выбор информации о зарегистрированных пользователях по ID
  2. Выбор информации обо всех зарегистрированных пользователях
  3. Выбор информации обо всех данных указанных пользователем при регистрации:
    • Фамилия, имя, отчество;
    • Контактный адрес электронной почты;
    • Контактный номер телефона;
    • Указанный адрес доставки: индекс, название населенного пункта, название улицы, номер дома, номер корпуса, номер квартиры, этаж;

Обратите внимание! При регистрации, пользователь может не заполнить все указанные выше поля.

Планы по развитию API

В ближайшее время, мы планируем открыть интерфейсы для поддержки взаимодействия магазинов со сторонними приложениями и сервисами по работе с:

  1. Разделами каталога.
  2. Товарами.
  3. Корзиной.
  4. Скидками.
  5. Способами доставки.
  6. Способами оплаты.

Для тестирования взаимодействия с API платформы beseller создан тестовый магазин beseller-api.shop.by .

Для доступа к тестовому магазину необходимо указать логин и пароль. Их вы можете получить по запросу у вашего персонального менеджера.

Перед тестированием взаимодействия с API мы рекомендуем вам:

  1. оформить самостоятельно несколько заказов;
  2. подписаться на рассылку;
  3. посмотреть как информация об оформленных заказах и подписчиках отображается в панели администрирования магазина.

Панель управления магазином доступна по адресу: beseller-api.shop.by/manager/ . Логин и пароль при входе в панель управления аналогичны логину и паролю доступа к магазину.

Как подключиться по API к своему магазину?

Для связи приложения с вашим магазином необходимо указать url-адрес доступа к API вида:

http://адрес_вашего_сайта:8082/graphql?token=ваш_персональный_секретный_ключ

Секретный ключ вы можете получить по запросу у вашего персонального менеджера.

Функции и переменные GraphQL для работы с API платформы beseller

Как подключиться к API с использованием языка программирования PHP

Для удобства работы с API платформы beseller вы можете воспользоваться:

  1. Классами разработанными нами под PHP.
    1. GraphqlClient - осуществляет прием и передачу данных на сервер;
    2. GraphQlHelper - содержит в себе реализованные query и mutation API;
  2. Примерами использования классов для осуществления выборок и изменений в базе данных интернет-магазина.

Настройка локального окружения

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

В качестве локального окружения используется GraphiQL Feen , это расширение для браузера Google Chrome которое позволяет формировать запросы к API.

После установки приложения у вас в браузере возле адресной строки появится иконка приложения.

Откройте приложение GraphiQL Feen и перейти на вкладку «SERVERS», выберите метод отправки POST, после чего укажите url-адрес доступа к API.

В качестве тестового url необходимо использовать следующий адрес:

Локальное окружение настроено, можно формировать запросы к API. Для этого необходимо открыть вкладку «QUERIES»

Формирование запроса к API beseller при помощи GraphiQL Feen и полученный ответ

Пояснения к скриншоту:

  1. Сохраненные запросы
  2. Поле для ввода запросов
  3. Поле ввода переменных
  4. Полученный ответ
  5. Кнопка запуска

Пример запроса на получение списка оформленных заказов за указанный промежуток времени

query ($first:Int, $offset:Int, $filter: OrdersFilterType){
orders(first:$first, offset:$offset, filter:$filter){
comment
status{
id
description
name
}
create_date
update_date
total {
suffix
value
}
payment {
name
description
cost {
suffix
value
}
}
delivery {
name
description
cost {
suffix
value
}
}
currencies {
bank_code
course
suffix
}
user_data {
name
description
value
}
}
}

Указание промежутка времени для выборки данных об оформленных заказах

{
"filter": {
"date_after": "2017-11-16T00:00:01Z",
"date_before": "2017-11-23T00:00:01Z"
}
}

Пример ответа от API

{{
"data": {
"orders": [
{
"comment": "Culpa officiis vel ut.",
"create_date": "2017-11-22 16:23:28",
"currencies": [
{
"bank_code": "BYN",
"course": 10000,
"suffix": "руб."
}
],
"delivery": {
"cost": [
{
"suffix": "руб.",
"value": 0
}
],
"description": "Курьер",
"name": "custom"
},
"payment": {
"cost": [
{
"suffix": "руб.",
"value": 0
}
],
"description": "Пластиковые карты",
"name": "custom"
},
"status": {
"description": "Новый",
"id": 1,
"name": "new"
},
"total": [
{
"suffix": "руб.",
"value": 4450
}
],
"update_date": "2017-11-22 16:23:28",
"user_data": [
{
"description": "Адрес e-mail",
"name": "email",
"value": "[email protected]"
},
{
"description": "Телефон",
"name": "phone",
"value": "784.392.3949 x69329"
},
{
"description": "Адрес",
"name": "registration",
"value": "607 Erik Station Suite 057\nReynaberg, WY 83542-0037"
},
{
"description": "Комментарий",
"name": "comment",
"value": "Id nam illo optio."
},
{
"description": "ФИО",
"name": "fio",
"value": "Jordi Mann MD"
}
]
}

Если вы работаете даже удаленно рядом с индустрией веб-разработчиков, можете быть на 100% уверены, что услышите эти три позорных буквы: API .

О них разговоры раскиданы между нубами и экспертами:

«Почему я должен сделать вызов API? У него есть номер?»

«Простой вызов этого стороннего API поможет вам в этом».

«Мы создадим вам RESTful API; убедитесь, что ваша новая система хорошо работает с другими сервисами».

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

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

Как разработчики, вы часто слышите совет «не изобретай велосипед»:

шутка:
мудрый совет: не изобретай велосипед
программист: хорошо
никогда больше не пишет собственный код

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

Преимущества использования API Что такое API на самом деле Какие существуют типы API Практические примеры использования API

Чтож, не пора ли погрузиться в это?

Преимущества API: зачем их использовать?

Одним из первых, самых важных этапов в моей карьере программиста было правильное понимание API.

Я до сих пор использую их каждый день.

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

Потому что обучение использованию API значительно повышает эффективность вашей разработки.

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

Во-вторых, многие проблемы разработки, с которыми вы столкнетесь, уже были решены кем-то до вас. Какую бы форму ни приняли эти существующие решения (FaaS , библиотеки, веб-сервисы, SDK, контентные API и т. Д.), Вам, скорее всего, понадобится API для взаимодействия с ними.

Так что же такое API?

Ну, официальное, устрашающее определение звучит так:

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

Тяжело, а? Давайте рассмотрим академическую прозу на ступеньку ниже. Вот более дружелюбное определение домашнего API:

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

Чтобы пролить свет на API, давайте перечислим, чем они НЕ являются:

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

    API это не просто интерфейс. Это и спецификация / формат и реализация.

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

API также не является веб-крючком(web-hook). Если вам трудно понять разницу между ними, вот вступление к веб-зацепкам.

Различные типы API

Все API не созданы равными.

Хотя они в основном преследуют одну и ту же цель, некоторые достигают ее лучше, чем другие. Поскольку это должно быть гладкое вступление, я не буду вдаваться в то, что делает API лучше, чем другие. Однако имейте в виду, что у людей действительно разные подходы к созданию API. Если вас интересует эта тема, найдите в Google «Шаблоны проектирования API» и «Парадигмы API». Или просто начните с этой аккуратной статьи начального уровняhttps://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=https://blog.cloudobjects.io/api-design/2017/04/10/api-design-paradigms/&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhg_fNGb7u4_EowoGcThqlUZsxYzow . :)

Цель API - сделать вашу жизнь как разработчика проще. Как они это делают? Объединяя совокупность функций / функций и выставляя эти функции через конечные точки (обычно шаблоны URL, используемые для взаимодействия с API). Эти конечные точки являются единственным способом взаимодействия с любым API. Каждая конечная точка будет иметь определенный формат для своих запросов и ответов - вы обычно найдете этот формат в документации API.

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

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

Как использовать API: практические примеры

Чтение и понимание документации API

Из документов видно, что каждая функция объекта описывает, каким должен быть формат ввода (число, массив чисел и т. Д.), И описывает формат вывода. Обратите внимание, однако, что ничего не упоминается относительно логики для запуска этих функций. Например, если вы запустите консоль разработчика и Math.sqrt (без выполнения функции), вы получите что-то вроде ƒ sqrt() { } . Это дух API: независимо от того, вызываете ли вы один из API вашей операционной системы или веб-API, эти принципы сохранятся.

Основные примеры использования API

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

Теперь, если вы следите за нашим блогом, я подозреваю, что вы больше заинтересованы в веб-API, чем что-либо еще. Итак, давайте углубимся в конкретные варианты использования. Обратите внимание, что мы будем использовать Postman в наших примерах. Конечно, этот Rest Client связан с веб-средой, но такие инструменты обычно существуют и в других средах. Стоит взглянуть на инструменты, предоставляемые для данной среды, прежде чем начать играть с ней; может сэкономить вам много времени.

Если вы хотите следовать за нами, вам необходимо скачать клиент Postman .https://www.getpostman.com/

Использование публичного API для извлечения данных

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

Мы будем использовать Dog API ! Это не только забавный API, но и не требует никакой аутентификации. Кроме того, это HTTP REST API, что означает, что это веб-API. Поскольку он связан с этой средой, он требует от нас соответствия некоторым специфическим особенностям протокола: в данном случае HTTP-глаголы (GET, PUT, POST, DELETE и т. Д.). В нашем примере мы будем просты и будем использовать только глагол GET. В любом случае API не позволяет поддерживать что-либо еще. Большинство общедоступных API-интерфейсов позволяют вам только использовать данные, а не публиковать их, такой как, глагол GET .

Давайте запустим Postman и посмотрим, как выглядит его пользовательский интерфейс.

Мой пользовательский интерфейс использует темную тему, поэтому она может немного отличаться от вашей.

Сначала может быть много информации, которую нужно переварить, поэтому давайте начнем с VERB и URL.

Глагол по умолчанию должен быть GET, чтобы вы могли оставить его таким и ввести следующий URL: https://dog.ceo/api/breeds/list/all

Жмите “Отправить” и все! Вы должны получить ответ с соответствующими данными. Вуаля! Вы только что сделали свой первый вызов API . Теперь для этого примера мы не будем использовать никакие полученные данные. Но у вас есть идея: вы можете показывать различные породы собак вашему пользователю и отображать изображение данной породы, если они нажмут на нее.

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

Классный факт: этот маленький проект также с открытым исходным кодом, так что вы можете заглянуть сюдаhttps://github.com/ElliottLandsborough/dog-ceo-api .

Обработка аутентификации с помощью частного API

Здесь мы будем использовать код только для взаимодействия с API Snipcart https://docs.snipcart.com/api-reference/introduction . Вы можете закрыть Почтальон, но держите его под рукой; хорошо использовать такой инструмент при запуске с API.

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

Создайте новую папку для этого проекта, используйте npm init в папке и загрузите ваш текстовый редактор. Теперь создайте файл index.js , затем откройте файл package.json . В него добавьте следующие строки в объект верхнего уровня:

“bin”: { “discounts”: “./index.js” }

Нам также понадобится пакет commander для анализа входных данных от клиента. Итак, запустите npm install -save commander в текущей папке. Мы также будем использовать небольшую библиотеку для создания идентификаторов; Вы можете установить его с помощью npm install -save shortid . Пока мы работаем, давайте также запустим npm install -save request lib, чтобы нам было проще совершать HTTP-вызовы. Вернитесь в файл index.js и вставьте этот код:

#!/usr/bin/env node var program = require(‘commander’); var shortid = require(‘shortid’); var request = require(‘request’); function CreateDiscount(){ var discount = { name: ‘20% OFF’, trigger: ‘Code’, type: ‘Rate’, rate: 20, maxNumberOfUsages: 1, code: shortid.generate() } request({ url: “http://app.snipcart.com/api/discounts" , auth: { ‘user’: ‘YOUR_API_KEY’ }, method: “POST”, json: true, body: discount }, function (error, response, body){ console.log(body.code); }); } program .arguments(’ ’) .action(function(number) { for(var i = parseFloat(number); i > 0; i-){ CreateDiscount(); } }) .parse(process.argv);

Давайте просто сосредоточимся на функции request здесь. Здесь мы делаем внешний вызов API для Snipcart. Вы можете видеть, что мы передаем method: “POST” в метод. Это потому, что мы хотим публиковать данные в API Snipcart. Указав этот метод, API будет правильно отображать действие, чтобы он мог прочитать тело запроса, в котором находятся данные о скидках.

Интересная функция API, которую мы еще не использовали, - это аутентификация. Все остальные наши примеры были на общедоступных API: они не требуют аутентификации. Но в реальных сценариях для большинства используемых вами API, вероятно, потребуется некоторая аутентификация, например, API Twitter или Google Maps API. Это стандартный «шаблон» в мире API. Наши клиенты не были бы так счастливы, если бы мы позволили кому-либо создавать скидки в их магазине. ;)

Концепции аутентификации могут стать довольно обременительными; Вы можете прочитать этот классный постhttps://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=http://blog.restcase.com/restful-api-authentication-basics/&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhjwWO5yc6nayLpXCQkh_X95B0OZMw , чтобы лучше освоить тему.

Для нашей цели мы передаем ключ APIhttps://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=https://en.wikipedia.org/wiki/Application_programming_interface_key&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhhpSWyk-nV9379VcrY3TMcKiAdXlQ непосредственно в запросе, и ура сервер нас узнает! Затем он может выполнить запрос, относящийся только к нашей учетной записи.

Если вы хотите протестировать наше маленькое приложение, вы можете запустить npm install -g в каталоге проекта и просто запустить discounts x чтобы создать скидки x количество раз. Вы можете зайти в свою панель Snipcart (навсегда бесплатные аккаунты в тестовом режиме) и убедиться, что скидки были созданы правильно. Вы можете себе представить, насколько мощным это может быть: если бы вам пришлось создать 200 таких скидок, это потребовало бы слишком много времени, чтобы сделать это через наш пользовательский интерфейс. Однако, когда вы ознакомитесь с работой API, это можно сделать за считанные минуты. Код также можно использовать повторно, так что если вам нужно сделать то же самое через месяц, ну, вы уже готовы!

Если у вас есть конкретные случаи использования API, о которых вы хотите рассказать, напишите их в комментариях. Мы рассмотрим возможность их добавления в нашу дорожную карту контента! :)

Заключительные мысли

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

Несколько выносов:

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

Теперь наш последний пример не готов к «производству», но он дает вам хорошее представление о том, как все может выглядеть в реальной жизни. Есть много вещей, которые мы могли бы улучшить, например, позволить пользователю выбрать тип скидки и т. Д. Мы могли бы также использовать созданные коды для отправки их по электронной почте непосредственно в той же функции, а не просто регистрировать их. Если бы у нас были повышенные потребности в наших инструментах скидок, мы могли бы сами написать API. Оттуда мы могли бы даже создать пользовательский интерфейс, который взаимодействует с нашим API, если мы захотим. Во всяком случае, я надеюсь, что вы поняли идею сейчас! :)

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

И вот тут начинается настоящее веселье.