Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Прикладной программный интерфейс

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

Определение: Прикладной программный интерфейс (application programming interface, API) — это описание способа, который позволяет какому-либо фрагменту ПО обращаться к другой программе за получением сервиса. Этим сервисом может быть предоставление доступа к данным или выполнение конкретной функции. Интерфейсы разработаны для большей части ПО уровня предприятия и играют критически важную роль в операционных системах, которые управляют большинством базовых функций компьютера

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

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

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

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

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

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

Когда компания Novell в прошлом году сообщила о намерении предоставить широкой публике доступ к исходным текстам своего программного обеспечения Novell Directory Services (NDS), Крис Стоун, бывший в то время вице-президентом Novell, заявил, что большинство корпоративных разработчиков не хотят копаться в текстах свободно распространяемого обеспечения. На самом деле, по его словам, разработчики хотят получить дополнительные наборы API, с помощью которых они смогли бы работать быстрее. И до сих пор исходные тексты NDS так и не опубликованы.

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

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

API как оружие против конкурентов

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

Эндрю Шульман описал несколько скрытых API операционной системы Windows в своей книге «Недокументированная Windows». Сейчас он работает консультантом в компании Caldera, которая предъявила иск корпорации Microsoft, обвиняя ее в нарушении антимонопольного законодательства. Теперь вместо сокрытия API, как пишет Шульман, «Windows имеет архитектуру типа ?кухонной раковины?, которая позволяет скрыть новые прикладные программные интерфейсы. Такое ?перемешивание? API — это попытка не допустить клонирования Windows».

Судья Томас Пенфилд Джексон привел аналогичные аргументы в своем выступлении 5 ноября в рамках слушаний по делу министерства юстиции против компании Microsoft. Он сказал, что «попытка клонировать API 32-разрядных Windows настолько дорогое и бесперспективное занятие, что появление конкурента для Windows становится практически невозможным».

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

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

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

Представьте, что у вас есть три соседа. Закрытый Зиновий, Открытый Оскар и API Анн. Каждый из них — это аналог приложения. Как и любому из соседей, вам иногда нужно у них что-нибудь позаимствовать, например газонокосилку. Это эквивалент интеграции приложений.

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

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

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

Читать еще:  Css язык программирования

Поделитесь материалом с коллегами и друзьями

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

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

Практически все операционные системы (UNIX, Windows, OS X и т.д.) имеют API, с помощью которого программисты могут создавать приложения для этой операционной системы. Главный API операционных систем — это множество системных вызовов.

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

В POSIXсуществует более 100 системных вызовов. Ниже приведены примеры наиболее часто применяемых системных вызовов стандарта POSIX:

  • fork — создание нового процесса;
  • exit — завершение процесса;
  • open — открывает файл;
  • close — закрывает файл;
  • read — читает данные из файла в буфер;
  • write — пишет данные из буфера в файл;
  • stat — получает информацию о состоянии файла;
  • mkdir — создает новый каталог;
  • rmdir — удаляет каталог;
  • link — создает ссылку;
  • unlink — удаляет ссылку;
  • mount — монтирует файловую систему;
  • umount — демонтирует файловую систему;
  • chdir — изменяет рабочий каталог.

B UNIX вызовы почти один к одному идентичны библиотечным процедурам, которые используются для обращения к системным вызовам.

Рассмотрим интерфейс прикладного программирования для Windows — Win32 API. Win32 API отделен от системных вызовов. Это позволяет в разных версиях менять системные вызовы, не переписывая программы. Поэтому непонятно, является ли вызов системным (выполняется ядром) или он обрабатывается в пространстве пользователя.

В Win32 API существует более 1000 вызовов. Такое количество связано и с тем, что графический интерфейс пользователя UNIX запускается в пользовательском режиме, а в Windows — встроен в ядро. Поэтому Win32 API имеет много вызовов для управления окнами, текстом, шрифтами т.д.

Вызовы Win32 API подобны вызовам стандарта POSIX. Примеры вызовов Win32API:

  • CreatProcess (fork) — создание нового процесса;
  • ExitProcess (exit) — завершение процесса;
  • CreatFile (open) — открывает файл;
  • Close Handle (close) — закрывает файл;
  • ReadFile (read) — читает данные из файла в буфер;
  • WriteFile (write) — пишет данные из буфера в файл;
  • CreatDirectory (mkdir) — создает новый каталог;
  • Remove Directory (rmdir) — удаляет каталог;
  • SetCurrentDirectoiy (chdir) — изменяет рабочий каталог. Интерфейс Win32 API позволяет программам работать почти

на всех версиях Windows.

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

С другой стороны, отличия в API различных операционных систем существенно затрудняют перенос приложений между платформами. Существуют различные методы обхода этой сложности — написание «промежуточных» API (API графических интерфейсов WxWidgets, Qt, GTK и т.п.), написание библиотек, которые отображают системные вызовы одной ОС в системные вызовы другой ОС (такие среды исполнения, как Wine, cygwin и т.п.), введение стандартов кодирования в языках программирования (например, стандартная библиотека языка С), написание интерпретируемых языков, реализуемых на разных платформах (sh, python, perl, php, tel, Java и т.д.).

Также необходимо отметить, что в распоряжении программиста часто находится несколько различных API, позволяющих добиться одного и того же результата. При этом каждый Л/Y обычно реализован с использованием API программных компонент более низкого уровня абстракции.

Например, для того чтобы увидеть в браузере строчку «Hello, world!», достаточно лишь создать HTML-документ с минимальным заголовком и простейшим телом, содержащим данную строку. Когда браузер откроет этот документ, программа-браузер передаст имя файла (или уже открытый дескриптор файла) библиотеке, обрабатывающей HTML-документы; та, в свою очередь, при помощи API операционной системы прочитает этот файл и разберется в его устройстве, затем последовательно вызовет через API библиотеки стандартных графических примитивов операции типа «очистить окошко», «написать “Hello, world!” выбранным шрифтом». Во время выполнения этих операций библиотека графических примитивов обратится к библиотеке оконного интерфейса с соответствующими запросами, уже эта библиотека обратится к API операционной системы, чтобы записать данные в буфер видеокарты.

При этом практически на каждом из уровней реально существует несколько возможных альтернативных API. Например, мы могли бы писать исходный документ не на HTML, а на LaTeX, для отображения могли бы использовать любой браузер. Различные браузеры, вообще говоря, используют различные //УМГ-библиотеки; и кроме того, все это может быть собрано с использованием различных библиотек примитивов и на различных операционных системах.

Основными сложностями существующих многоуровневых систем API, таким образом, являются:

  • • сложность портирования программного кода с одной системы API на другую (например, при смене ОС);
  • • потеря функциональности при переходе с более низкого уровня на более высокий. Грубо говоря, каждый «слой» API создается для облегчения выполнения некоторого стандартного набора операций. Но при этом реально затрудняется либо становится принципиально невозможным выполнение некоторых других операций, которые предоставляет более низкий уровень API.

Что такое api и зачем его используют разработчики??

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

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

Для начала расшифруем аббревиатуру.

API, которая буквально означает интерфейс прикладного программирования (Application Programming Interface).

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

Аналогия функциональности API

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

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

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

Читать еще:  Безопасное восстановление системы

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

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

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

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

Что входит в API и как он работает?

Безусловно, практически невозможно или очень сложно связать воедино разрозненные ресурсы, несовместимые данные и ПО создаваемое на разных языках. Но если разработчики желают чтобы их продукт (приложение, операционная система или сервис) развивался и совместно работал с другими программами и устройствами, то они должны предусмотреть разработку своих модулей исходя из концепции API.

Элементами такого программного интерфейса, являются:

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

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

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

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

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

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

Возвращаюсь к нашему строительному примеру можно провести аналогию. Сигнатура это визитка (например, бригада выполняет укладку кафеля). А семантика – это бланк оформления заявки (От вас требуется указать точное место, площадь поверхности, предоставить плитку. Мы ее качественно клеим за N-сот рублей). Я думаю в общих чертах понятно, что такое api? Теперь поговорим о том, где применяется.

Сферы использования API

Единой API пока не существует, но такие интерфейсы разработаны для отдельных операционных систем:

  • Windows API
  • Linux Kernel API
  • OS/2 API
  • Amiga ROM Kernel
  • POSIX
  • Cocoa

А так же для звуковых и графических интерфейсов, среди которых вам наверняка встречались DirectX, OpenGL, GDI+, SDL, GTK, Qt. Точно сформулировать, для каких задач предназначен АПИ невозможно. Сфера его применения ограничивается только фантазией разработчика, благо для этого существуют все возможности.

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

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

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

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

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

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

Принципы построения интерфейсов операционных систем

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

управление процессами, которое включает в себя следующий набор основных функций:

· запуск, приостанов и снятие задачи с выполнения;

· задание или изменение приоритета задачи;

· взаимодействие задач между собой (механизмы сигналов, семафорные примитивы, очереди, конвейеры, почтовые ящики);

· RFC (remote procedure call) — удаленный вызов подпрограмм;

· запрос на выделение блока памяти;

· изменение параметров блока памяти (например, память может быть заблокирована процессом либо предоставлена в общий доступ);

· отображение файлов на память (имеется не во всех системах);

· запрос на управление виртуальными устройствами;

· файловые операции (запросы к системе управления файлами на создание, изменение и удаление данных, организованных в файлы).

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

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

Интерфейс прикладного программирования (API, application program interface) разделяется на следующие направления:

· API как интерфейс высокого уровня, принадлежащий к библиотекам RTL;

· API прикладных и системных программ, входящих в поставку операционной системы;

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

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

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

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

В принципе API используется не только прикладными, но и многими системными программами, как в составе ОС, так и в составе системы программирования.

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

Читать еще:  Геометрическое решение задач линейного программирования онлайн

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

Существует несколько вариантов реализации API:

· реализация на уровне ОС;

· реализация на уровне системы программирования;

· реализация на уровне внешней библиотеки процедур и функций.

Система программирования в каждом из этих вариантов предоставляет разработчику средства для подключения функций 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 для различных аппаратных средств или услуг, разработчикам должно быть проще использовать такие функции.

Ссылка на основную публикацию
Adblock
detector