Немного о компьютере

Что такое работа с api. API функции языка Visual Basic. Настройка локального окружения

Для того, чтобы облегчить труд своих коллег и обеспечить всем программам для Windows универсальный интерфейс, программисты Microsoft создали такую вещь, как API - "Application Programming Interface".

Это - набор функций и процедур, которые могут наиболее часто использоваться программами: отображение дерева каталогов, поиск файлов, отображение стандартного окна с кнопками закрытия, минимизации и развертывания на весь экран и многих других. В итоге разработчик, создающий программу для Windows, не должен продумывать и разрабатывать специальные подпрограммы для отображения окна программы, окна для выбора папки и остальных подобных элементарных операций, - ему достаточно просто вызвать из библиотек kernel32.dll или user32.dll, содержащих функции и процедуры API, нужную ему функцию, а она уже все сделает за него сама. Таких функций и процедур много - порядка 600.

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

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

В языке Visual Basic for Applications (VBA) многие функции и процедуры API вызываются сами при выполнении программы интерпретатором, так что использовать их для отображения окон ввода и вывода текста, рисования на экране геометрических фигур и других простых действий совершенно нет необходимости, - их VBA вызывает по мере надобности, а программе на нем достаточно использовать соответствующие функции этого языка. Однако иногда возникает необходимость в некоторых действиях, для которых либо нет аналогов во встроенных функциях VBA, либо они работают нерационально или слишком медленно. Например, окно выбора папки с изображением дерева каталогов (рис.5.1) или программа поиска файлов (аналог на функциях VBA - объект "Application.FileSearch" - работает слишком медленно при больших количествах файлов). Для таких случаев в VBA предусмотрена возможность вызова функций API.

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

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

Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal kState As Long) As Integer

GetAsyncKeyState (vbKeyShift Or vbKeyControl)

If GetAsyncKeyState(vbKeyShift) Then

Call macro1: Exit Sub

ElseIf GetAsyncKeyState(vbKeyControl) Then

Call macro2: Exit Sub

Первая строчка - это как бы "резервирование" функции API для использования в программе на VBA. Видно, что вызывается функция GetAsyncKeyState из библиотеки (файла, содержащего программы, предназначенные только для использования другими программами) user32.dll, причем в эту функцию передается номер клавиши, а возвращает она целое число (а именно - 0, если клавиша с соответствующим номером не нажата, и -32767 или 1, если нажата). Любую функцию или процедуру, вызываемую из библиотек, не относящихся к VBA, необходимо так резервировать с помощью команды Declare.

Фраза vbKeyShift в команде - это заменитель кода клавиши Shift (его значение - 16), а vbKeyControl, как нетрудно понять - заменитель кода клавиши Control. Структура инструкций "If…Then", думается, ясна 3 , а если нет - посмотрите в справке VBA. Команда Call перед именем макроса, как вы помните, означает его запуск.

В Интернете есть русские сайты, посвященные API 4 . Посетите их, чтобы узнать больше об этом наборе функций.

Начнем с основ: что такое API? Аббревиатура расшифровывается как Application Programming Interface, или интерфейс для программирования приложений. Название, вроде бы, говорит само за себя, но лучше рассмотреть более детальное объяснение.

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

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

API в веб-приложениях на примерах

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

Подобным образом можно посылать запрос на любом языке, в том числе и на Ruby. Ответом на запрос будет примерно такая информация:

{ "login" : "Freika" , "id" : 3738638, "avatar_url" : "https://avatars.githubusercontent.com/u/3738638?v=3" , "gravatar_id" : "" , "url" : "https://api.github.com/users/Freika" , "html_url" : "https://github.com/Freika" , "followers_url" : "https://api.github.com/users/Freika/followers" , "following_url" : "https://api.github.com/users/Freika/following{/other_user}" , "gists_url" : "https://api.github.com/users/Freika/gists{/gist_id}" , "starred_url" : "https://api.github.com/users/Freika/starred{/owner}{/repo}" , "subscriptions_url" : "https://api.github.com/users/Freika/subscriptions" , "organizations_url" : "https://api.github.com/users/Freika/orgs" , "repos_url" : "https://api.github.com/users/Freika/repos" , "events_url" : "https://api.github.com/users/Freika/events{/privacy}" , "received_events_url" : "https://api.github.com/users/Freika/received_events" , "type" : "User" , "site_admin" : false , "name" : "Evgeniy" , "company" : "" , "blog" : "http://frey.su/" , "location" : "Barnaul" , "email" : "" , "hireable" : true , "bio" : null, "public_repos" : 39, "public_gists" : 13, "followers" : 15, "following" : 21, "created_at" : "2013-03-01T13:48:52Z" , "updated_at" : "2014-12-15T13:55:03Z" }

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

Одного API недостаточно

Создать полноценный API для своего приложения – лишь половина дела. Как вы предполагаете обращаться к API? Как к нему будут обращаться ваши пользователи?

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

Еще раз воспользуемся Github для приведения примера: для работы с АПИ этого прекрасного сервиса (а интерфейс у него предоставляет обширнейшие возможности) создано несколько библиотек на различных языках, например гем Octokit . В документации к таким библиотекам (и приведенному в качестве примера гему) любой заинтересованный разработчик сможет отыскать все необходимые способы получения информации от Гитхаба и отправки её обратно через API сервиса.

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

Полезные ссылки

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

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

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

Что значит API

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

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

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

Плюсы:

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

Минусы:

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

Примеры API

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

VKAPI

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

Все запросы осуществляются к адресу https://api.vk.com/method/

После слэша идёт наименование используемого API-метода и передаются GET-параметры запроса. Ответ так же приходит по HTTPS в формате JSON.

TELEGRAM BOT API

Одно из самых популярных API. С его помощью осуществляется контроль ботов в мессенджере Telegram. После создания бота через @botfather и получения необходимых ключей доступа, вы можете начать взаимодействие с внутренним интерфейсом.

Запросы осуществляются по адресу https://api.telegram.org/bot0000000:token/

Где вместо bot0000000 ставится уникальный идентификатор вашего бота, а token выражает секретный ключ.

Запросы посылаются через HTTPS соединения, название метода указывается через слэш к основному адресу. Ответ приходит в формате JSON.

OPEN WEATHER MAP API

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

Формат работа: HTTP передача по api.openweathermap.org/data/2.5/weather?id= c указанием идентификационного номера желаемого города. Ответ сервера: JSON.

GOOGLE MAPS API

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

Подобные возможности предлагает JavaScript API Google Maps. Модуль полностью скриптовой и работает на стороне браузера, поэтому HTTP-запросы из PHP и формирование заголовков на стороне сервера, как было в других API, нам не нужно.

Например, выставление метки на карте будет выглядеть так:

var mark = new google.maps.Marker({
position: myPOS,
map: map,
title:"Hello!"
});

Для чего нужно и чем полезно использование API

Полезных функций довольно много.

Первый аспект

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

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

Второй аспект

Если вы владелец сложных вычислительных мощностей, популярного сервиса или хранилища данных для открытого или полуприватного доступа, то хорошим ходом будет поднять собственное API. Что это даст:

  • Большой поток клиентов.
  • Упрощенный доступ к вашим услугам для партнеров.
  • Удобство статистического анализа использования сервиса.

Третий аспект

Почти тот же, что и второй. Но без необходимости реализовывать API для открытого доступа. Если у вас есть портал, и вы хотите создать под него мобильное приложение на Android/IOS, то переписать систему под единое API – лучшее решение. Вся структура данных систематизируется. Сайт и приложение будут работать через единые каналы данных.

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

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

Для наглядности, разделим API на частный (локальный) и общий (глобальный);

Локальное API

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

Также вы можете найти какие-то готовые решения API для других служб доставки на marketplace. Но если вы решили подключить особенную службу доставки, например постаматы pick point, вам придётся писать для неё своё локальное API, по которому Битрикс будет взаимодействовать с сервисом.

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

Недостатки локального API:

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

Глобальное API

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

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

Плюсы глобального API:

  • Скорость сайта не страдает. Идёт минимальная нагрузка со стороны внешних сервисов.
  • Нагрузкой на API можно управлять, выставляя лимиты. Например, можно выставить более жесткие ограничения мелкооптовым покупателям на получение актуальных остатков по вашим товарам, по сравнению с крупнооптовыми
  • Если какой-либо сервис изменил алгоритм, или обновление Битрикс затронуло внутренние алгоритмы работы ядра системы, мы узнаем об этом немедленно, так как система постоянно проводит тесты и контролирует любые изменения.
  • Подключение любой новой системы занимает минимум времени
  • Подключение любой новой системы обходится намного дешевле локального API

Вам нужно API, если ваш интернет-проект вырос и вы чувствуете потребность в:

  • Создании мобильного приложения
  • Подключении гибких служб доставки и оплаты
  • Задумываетесь о сервисах персонализации
  • Хотите подключить профессиональные инструменты e-mail и sms рассылки
  • Хотите чтобы сервисы взаимодействовали и "дружили" друг с другом (например, чтобы в почтовый сервис mailchimp приходила информация о том, какие товары из распродажи надо отправить тому или иному пользователю)
  • Задумываетесь о подключении сторонних сервисов по маркетингу

Сколько стоит API и доработки:

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

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

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

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

Примером API является Windows API , OpenGL API , Direct3D API и так далее.

Например, не так давно я тоже столкнулся напрямую с API . Я зарегистрировался на сервисе почтовых рассылок "SmartResponder.ru " и завёл рассылку, на которую стали подписываться люди. Задача была следующая: в течение суток после подписки человек может приобрести со скидкой мой платный видеокурс. Так как вся информация о подписчиках хранится на сервере "SmartResponder.ru ", то обычный доступ (например, через БД ) к этим данным я не имел, а реализовывать это было нужно. Благо, у "SmartResponder.ru " есть свой собственный API , которым я и воспользовался.

Я нашёл в их API формат запроса, чтобы в результате вытащить дату подписки. Далее через cURL я отправил соответствующий запрос и получил искомую дату подписки для конкретного e-mail адреса . Далее стандартная обработка и вывод результата.

Похожие публикации