API

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

API (Application Programming Interface) — механизм предоставления данных в формате, который может легко обрабатываться машиной (обычно что-то типа формата JSON или XML). Обычно используется параллельно для стандартного вывода приложения (которое предназначено для использования человеком).

Описание[править]

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

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

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

Назначение:

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

Типичное применение[править]

Бот даёт запрос на специальный адрес вроде site.name/api, по которому, если он сформирован верно, предоставляет ответ в машиночитаемом виде. Может потребоваться токен авторизации, используемый для доступа в платный API, если запрос оплачен — то даётся ответ, иначе возникает ошибка.

Примеры[править]

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++Scala
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автомат
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур Пейперт
Прочее++i + ++iDeadline%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодач