Jump to content

API

(Перенаправлено из API )
Снимок экрана веб -документации API, написанная НАСА , демонстрируя использование APOD

Интерфейс прикладного программирования (сокращенно API ) - это способ для двух или более компьютерных программ или компонентов для общения друг с другом. Это тип программного интерфейса , который предлагает услугу для других частей программного обеспечения . [ 1 ] Документ или стандарт, который описывает, как создавать или использовать такое соединение или интерфейс, называется спецификацией API . Говорят, что компьютерная система, которая соответствует этому стандарту, реализует или выявляет API. Термин API может относиться либо к спецификации, либо к реализации. системы В то время как пользовательский интерфейс диктует, как ее конечные пользователи взаимодействуют с рассматриваемой системой, ее API диктует, как писать код, который использует возможности этой системы.

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

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

Существуют API для языков программирования , программных библиотек , компьютерных операционных систем и компьютерного оборудования . API возникли в 1940 -х годах, хотя этот термин не появился до 1960 -х и 1970 -х годов. Современное использование термина API часто относится к веб -API , [ 2 ] которые позволяют общаться между компьютерами, которые присоединяются к Интернету . Недавние события в API привели к росту популярности микросервисов , которые являются свободно связанными услугами, доступными через публичные API. [ 3 ]

API должны быть версированы . Есть две общие стратегии управления версиями: [ 4 ]

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

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

История термина

[ редактировать ]
Диаграмма 1978 года, предлагающая расширение идеи API, чтобы стать общим интерфейсом программирования, за пределами прикладных программ . только [ 6 ]

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

1940 -е и 1950 -е годы

[ редактировать ]

Идея API намного старше, чем сам термин. Британские компьютерные ученые Морис Уилкс и Дэвид Уилер работали над модульной библиотекой программного обеспечения в 1940 -х годах для Edsac , раннего компьютера. Подпрограммы организованной в этой библиотеке хранились на перфорированной ленте, в шкафу для регистрации . Этот шкаф также содержал то, что Уилкс и Уилер назвали «библиотечным каталогом» примечаний о каждой подпрограмме и о том, как включить его в программу. Сегодня такой каталог будет называться API (или спецификацией API или документацией API), потому что он инструктирует программиста о том, как использовать (или «вызовать») каждую подпрограмму, в которой нужен программист. [ 7 ]

Книга Уилкса и Уилера 1951 года «Подготовка программ к электронному цифровому компьютеру» содержит первую опубликованную спецификацию API. Джошуа Блох считает, что Уилкс и Уилер «лапокнули» API, потому что это скорее обнаруженная концепция, чем изобретенная. [ 7 ]

Хотя люди, которые придумывали термин API, внедрили программное обеспечение на Univac 1108 , цель их API заключалась в том, чтобы сделать возможными независимые от оборудования программы. [ 8 ]

1960 -е и 1970 -е годы

[ редактировать ]

Термин «интерфейс прикладной программы» (без суффикса ) впервые записан в статье, называемых структурами и методами данных для удаленной компьютерной графики, представленной на конференции AFIPS в 1968 году. [ 9 ] [ 7 ] Авторы этой статьи используют термин для описания взаимодействия приложения - графической программы в этом случае - с остальной частью компьютерной системы. Последовательный интерфейс приложения (состоящий из вызовов подпрограммы Fortran ) был предназначен для освобождения программиста от работы с улованием устройства отображения графики, а также для обеспечения оборудования, если компьютер или дисплей были заменены. [ 8 ]

Термин был введен в область баз данных CJ Date [ 10 ] В статье 1974 года под названием « Реляционные и сетевые подходы: сравнение интерфейса прикладного программирования» . [ 11 ] API стал частью структуры ANSI/SPARC для систем управления базами данных . Эта структура обработала интерфейс программирования приложений отдельно от других интерфейсов, таких как интерфейс запроса. Профессионалы базы данных в 1970 -х годах наблюдали, как эти различные интерфейсы могут быть объединены; Достаточно богатый интерфейс приложения может также поддерживать другие интерфейсы. [ 6 ]

Это наблюдение привело к API, которые поддерживали все типы программирования, а не только прикладное программирование.

1990 -е годы

[ редактировать ]

К 1990 году API был определен просто как «набор услуг, доступных для программиста для выполнения определенных задач» технолога Карла Маламуда . [ 12 ]

Идея API снова была расширена с рассветом удаленных вызовов процедур и веб -API . По мере того, как компьютерные сети стали обычным явлением в 1970 -х и 1980 -х годах, программисты хотели позвонить в библиотеки, расположенные не только на их локальных компьютерах, но и на компьютерах, расположенных в других местах. Эти удаленные вызовы процедуры были хорошо поддержаны Java в частности языком . В 1990 -х годах, с распространением Интернета , такие стандарты, как Corba , Com и DCOM, конкурировали, чтобы стать наиболее распространенным способом раскрытия услуг API. [ 13 ]

2000 -е годы

[ редактировать ]

Рой Филдинг диссертационный архитектурные стили и проектирование сетевых программных архитектур в UC Irvine в 2000 году изложено передача репрезентативного состояния (REST) ​​и описал идею «сетевого интерфейса прикладного программирования», который в отличие от традиционной библиотеки-библиотеки На основе "API. [ 14 ] Веб -API -интерфейсы XML и JSON увидели широкое распространение коммерческого принятия, начиная с 2000 года и продолжая по состоянию на 2022 год. В настоящее время веб -API является наиболее распространенным значением термина API. [ 2 ]

Семантическая сеть, предложенная Тимом Бернерс-Ли в 2001 году, включала «семантические API», которые пересматривают API в качестве открытого , распределенного интерфейса данных, а не интерфейса поведения программного обеспечения. [ 15 ] Собственные интерфейсы и агенты стали более распространенными, чем открытые, но идея API как интерфейса данных завладела. Поскольку веб -API широко используются для обмена данными всех видов в Интернете, API стал широким термином, описывающим большую часть общения в Интернете. [ 13 ] При использовании таким образом термин API перекрывается по значению с термином протокола связи .

Использование

[ редактировать ]

Библиотеки и фреймворки

[ редактировать ]

Интерфейс к программной библиотеке является одним из типов API. API описывает и предписывает «ожидаемое поведение» (спецификация), в то время как библиотека является «фактической реализацией» этого набора правил.

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

Отделение API от его реализации может позволить программам, написанным на одном языке, использовать библиотеку, написанную в другом. Например, поскольку Scala и Java компилируются с совместимым байт -кодом , разработчики Scala могут воспользоваться любым Java API. [ 16 ]

Использование API может варьироваться в зависимости от типа вовлеченного языка программирования. API для процедурного языка , такого как LUA, может состоять в основном из основных процедур для выполнения кода, манипулировать данными или обработки ошибок, в то время как API для объектно-ориентированного языка , такого как Java, обеспечит спецификацию классов и его методы класса . [ 17 ] [ 18 ] Закон Хайрума гласит, что «с достаточным количеством пользователей API не имеет значения, что вы обещаете в контракте: все наблюдаемые поведения вашей системы будут зависеть от кого -то». [ 19 ] Между тем, несколько исследований показывают, что большинство приложений, которые используют API, имеют тенденцию использовать небольшую часть API. [ 20 ]

Языковые привязки также являются API. Сопоставление функций и возможностей одного языка с интерфейсом, реализованным на другом языке, привязка языка позволяет библиотеке или службе, написанной на одном языке, используется при разработке на другом языке. [ Цитация необходима ]

как SWIG и F2PY, генератор интерфейса FORTRAN -Python Такие инструменты , , облегчают создание таких интерфейсов. [ 21 ]

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

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

Операционные системы

[ редактировать ]

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

Linux и Распределение программного обеспечения Berkeley - примеры операционных систем, которые реализуют APIS POSIX. [ 25 ]

Microsoft продемонстрировала сильную приверженность обратному совместимому API, особенно в своей библиотеке Windows API (WIN32), поэтому старые приложения могут работать на более новых версиях Windows, используя специфическую для исполняемого настройки, называемый «режим совместимости». [ 26 ]

API отличается от двоичного интерфейса приложения (ABI) тем, что API основан на исходном коде, в то время как ABI основан на основе бинарного материала . Например, POSIX обеспечивает API, в то время как стандартная база Linux обеспечивает ABI. [ 27 ] [ 28 ]

Отдаленные API

[ редактировать ]

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

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

Модификация прокси -объекта также приведет к соответствующей модификации удаленного объекта. [ 31 ]

Веб -API - это сервис, доступный от клиентских устройств (мобильные телефоны, ноутбуки и т. Д.) На веб -сервер с использованием протокола передачи гипертекста (HTTP). Клиентские устройства отправляют запрос в форме HTTP -запроса и встречаются с ответным сообщением, обычно в формате JavaScript объекта ( JSON ) или в формате расширяемого языка разметки ( XML ). Разработчики обычно используют веб -API для запроса сервера для определенного набора данных с этого сервера.

Примером может быть транспортная компания API, которая может быть добавлена ​​на веб-сайт, ориентированный на электронную коммерцию, для облегчения заказа услуг по доставке и автоматически включать текущие ставки доставки, без разработчика сайта, который разработчик должен ввести таблицу ставок грузоотправителя в веб-базу данных. В то время как «Web API» исторически был практически синонимом веб-сервиса , недавняя тенденция (так называемое Web 2.0 ) отходит от простых веб-сервисов на основе протокола объекта ( SOAP ) и архитектуры, ориентированной на услуги (SOA), к большему количеству прямых Репрезентативное государство переноса (REST) ​​Стиль Стиль и ресурсо-ориентированная архитектура (ROA). [ 32 ] Часть этой тенденции связана с движением семантической сети в направлении структуры описания ресурсов (RDF), концепцией для продвижения веб- инженерных технологий онтологии . Веб -API разрешают комбинацию нескольких API в новые приложения, известные как Mashups . [ 33 ]

В пространстве социальных сетей веб -API позволили веб -сообществам облегчить обмен контентом и данными между сообществами и приложениями. Таким образом, контент, который создается в одном месте динамически, может быть опубликован и обновлен в несколько мест в Интернете. [ 34 ] Например, API REST Twitter позволяет разработчикам получить доступ к основным данным Twitter, а поисковый API предоставляет для разработчиков методы взаимодействия с данными поиска и тенденций в Твиттере. [ 35 ]

Дизайн API оказывает значительное влияние на его использование. [ 5 ] Прежде всего, проектирование интерфейсов программирования представляет собой важную часть архитектуры программного обеспечения , организации сложного программного обеспечения. [ 36 ] Принцип скрытия информации описывает роль интерфейсов программирования как обеспечение модульного программирования , скрывая детали реализации модулей, так что пользователи модулей не должны понимать сложности внутри модулей. [ 37 ] Помимо предыдущего основного принципа, другие показатели для измерения удобства использования API могут включать такие свойства, как функциональная эффективность, общая правильность и обучаемость для новичков. [ 38 ] Одним из простых и обычно принятых способов разработки API является следование Нильсена эвристическому рекомендациям . Заводской шаблон метода также типичен при проектировании API -интерфейсов из -за их многократного характера. [ 39 ] Таким образом, дизайн API пытается предоставить только инструменты, которые пользователь ожидал. [ 5 ]

Синхронно и асинхронно

[ редактировать ]

Интерфейс прикладного программирования может быть синхронным или асинхронным . Синхронный вызов API - это дизайн -шаблон, где сайт вызовов заблокирован в ожидании завершения CODE. [ 40 ] Однако с асинхронным вызовом API сайт вызова не заблокирован во время ожидания, пока вызовочный код завершит, и вместо этого вызовный поток уведомляется, когда наступает ответ.

Безопасность

[ редактировать ]

Безопасность API очень важна при разработке общественного API. Общие угрозы включают инъекцию SQL , атаку отказа в службе (DOS), разбитая аутентификация и обнаружение конфиденциальных данных. [ 41 ] Без обеспечения надлежащей практики безопасности плохие субъекты могут получить доступ к информации, которую они не должны иметь или даже получить привилегии для внесения изменений на ваш сервер. Некоторые общие методы безопасности включают в себя правильную безопасность подключения с использованием HTTPS , безопасность контента для смягчения атак в инъекциях данных и требование ключа API для использования вашей услуги. [ 42 ] Многие общественные службы API требуют, чтобы вы использовали назначенный ключ API, и отказываются обслуживать данные без отправки ключа с вашим запросом. [ 43 ]

Политики выпуска

[ редактировать ]

API являются одним из наиболее распространенных способов интеграции технологических компаний. Те, которые предоставляют и используют API, считаются членами бизнес -экосистемы. [ 44 ]

Основными политиками выпуска API являются: [ 45 ]

  • Частный : API предназначен только для внутреннего использования компании.
  • Партнер : только конкретные деловые партнеры могут использовать API. Например, транспортное средство для наемных компаний, таких как Uber и Lyft, позволяет утвержденным сторонним разработчикам напрямую заказывать поездки в своих приложениях. Это позволяет компаниям осуществлять контроль качества, курируя, какие приложения имеют доступ к API и предоставляют им дополнительный поток доходов. [ 46 ]
  • Общественность : API доступен для использования общественностью. Например, Microsoft публикует Windows API , а Apple выпускает свое API Cocoa , чтобы программное обеспечение было написано для их платформ . Не все публичные API, как правило, доступны для всех. Например, интернет -поставщики, такие как CloudFlare или Voxity, используют Restful API, чтобы позволить клиентам и реселлерам получить доступ к своей информации о инфраструктуре, статистике DDOS, производительности сети или управления панелью панели. [ 47 ] Доступ к таким API предоставляется либо «токенами API», либо проверкой статуса клиента. [ 48 ]

Общественные последствия API

[ редактировать ]

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

Когда части публично представленного API могут быть изменены и, следовательно, не стабильны, такие части конкретного API должны быть задокументированы явно как «нестабильные». Например, в библиотеке Google Guava детали, которые считаются нестабильными, и которые могут измениться в ближайшее время, отмечены аннотацией Java @Beta. [ 50 ]

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

19 февраля 2020 года Akamai опубликовал свой ежегодный отчет «Состояние Интернета», демонстрируя растущую тенденцию киберпреступников, ориентированных на общественные платформы API в финансовых услугах по всему миру. С декабря 2017 года по ноябрь 2019 года Акамай стал свидетелем 85,42 млрд. Атак на нарушение полномочий. Около 20%, или 16,55 миллиарда, были против имен -хостов, определенных как конечные точки API. Из них 473,5 млн. - предназначены для организаций сектора финансовых услуг. [ 52 ]

Документация

[ редактировать ]

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

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

Традиционные файлы документации часто представляются через систему документации, такую ​​как Javadoc или Pydoc, которая имеет постоянный внешний вид и структуру. Однако типы контента, включенные в документацию, отличаются от API до API. [ 55 ]

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

Справочная документация для API REST может быть сгенерирована автоматически из документа OpenAPI, который представляет собой машиночитаемый текстовый файл, в котором используется предписанный формат и синтаксис, определенный в спецификации OpenAPI . В документе OpenAPI определяется основная информация, такая как имя и описание API, а также описание операций, к которым API предоставляет доступ. [ 56 ]

Документация API может быть обогащена информацией о метаданных, такой как аннотации Java . Эти метаданные могут использоваться компилятором, инструментами и средой времени выполнения для реализации пользовательского поведения или пользовательской обработки. [ 57 ]

[ редактировать ]

В 2010 году Oracle Corporation подала в суд на Google за то, что она распространила новую реализацию Java, встроенной в операционную систему Android. [ 58 ] Google не приобрел никакого разрешения на воспроизведение API Java, хотя разрешение было дано аналогичному проекту OpenJDK. Google обратился к Oracle, чтобы договориться о лицензии на их API, но был отклонен из -за проблем доверия. Несмотря на разногласия, Google в любом случае решил использовать код Oracle. Судья Уильям Алсуп постановил в деле Oracle v. Google , что API не могут быть защищены авторским правом в США, и что победа Oracle широко расширила бы защиту авторских прав на «функциональный набор символов» и позволила бы авторским правом простых программных команд:

Принять утверждение Oracle, чтобы позволить любому авторскому праву одной версии кода выполнить систему команд и тем самым запретить всем остальным написание различных версий для выполнения всех или части одних и тех же команд. [ 59 ] [ 60 ]

Постановление Алсупа было отменено в 2014 году по апелляции в Апелляционный суд по федеральному округу , хотя вопрос о том, остается ли такое использование API использование . справедливое [ 61 ] [ 62 ]

В 2016 году, после двухнедельного судебного разбирательства, жюри определило, что повторное представление Google Java API представляет собой справедливое использование , но Oracle пообещал обжаловать решение. [ 63 ] Oracle выиграл в своей апелляции, когда Апелляционный суд по решению Федерального округа постановление Google в Google не имело права на справедливое использование. [ 64 ] В 2019 году Google подал апелляцию в Верховный суд Соединенных Штатов как по вопросам авторского права, так и постановления о справедливом использовании, и Верховный суд предоставил рассмотрение. [ 65 ] Из-за пандемии Covid-19 , устные слушания по делу были отложены до октября 2020 года. [ 66 ]

Дело было решено Верховным судом в пользу Google с решением 6–2. Судья Стивен Брейер высказал мнение суда и в какой -то момент упомянул, что «заявляющий кодекс, если вообще защищен авторским правом, дальше, чем большинство компьютерных программ из ядра авторских прав». Это означает, что код, используемый в API, больше похож на словари, чем романы с точки зрения защиты авторских прав. [ 67 ]

Смотрите также

[ редактировать ]
  1. ^ Редди, Мартин (2011). API -дизайн для C ++ . Elsevier Science. п. 1. ISBN  9780123850041 Полем Архивировано из оригинала на 2023-04-15 . Получено 2023-03-21 .
  2. ^ Подпрыгнуть до: а беременный Лейн, Кин (10 октября 2019 г.). «Вступление в API: История API» . Почтальон . Архивировано из оригинала 11 сентября 2020 года . Получено 18 сентября 2020 года . Когда вы слышите аббревиатуру «API» или его расширенную версию «Интерфейс прикладного программирования», он почти всегда относится к нашему современному подходу, поскольку мы используем HTTP для предоставления доступа к читаемым машине в формате JSON или XML, часто просто просто называется «веб -API». APIS существует почти столько же, сколько вычислительные, но современные веб -API начали обретать форму в начале 2000 -х годов.
  3. ^ Вуд, Лора (2021-08-25). «Глобальный рынок облачных микросервисов (с 2021 по 2026 год)» . BusinessWire.com . Архивировано из оригинала 2022-04-08 . Получено 2022-03-29 .
  4. ^ Проектирование API -интерфейсов веб -APIS, которые любят разработчики . О'Рейли СМИ. 2018. ISBN  9781492026877 .
  5. ^ Подпрыгнуть до: а беременный в Кларк, Стивен (2004). «Измерение юзабилити API» . Доктор Добб . Архивировано из оригинала 3 марта 2022 года . Получено 29 июля 2016 года .
  6. ^ Подпрыгнуть до: а беременный Архитектуры базы данных - технико -экономический семинар (отчет). Вашингтон, округ Колумбия: Министерство торговли США, Национальное бюро стандартов. Апрель 1981 г. с. 45–47. HDL : 2027/MDP.39015077587742 . LCCN   81600004 . Специальная публикация NBS 500-76 . Получено 18 сентября 2020 года .
  7. ^ Подпрыгнуть до: а беременный в дюймовый Блох, Джошуа (8 августа 2018 г.). Краткая, самоуверенная история API (речь). QCON. Сан -Франциско: Infoq. Архивировано из оригинала 22 сентября 2020 года . Получено 18 сентября 2020 года .
  8. ^ Подпрыгнуть до: а беременный Коттон, Ira W.; Greatorex, Фрэнк С. (декабрь 1968 г.). «Структуры и методы данных для удаленной компьютерной графики» . AFIPS '68: Материалы 9–11 декабря 1968 года, Осенняя совместная компьютерная конференция . AFIPS 1968 Осенью совместная компьютерная конференция. Тол. I. Сан -Франциско, Калифорния: Ассоциация компьютерных техников. С. 533–544. doi : 10.1145/14765889.14766661 . ISBN  978-1450378994 Полем OCLC   1175621908 . Архивировано из оригинала 2020-10-20 . Получено 2020-09-19 .
  9. ^ «Интерфейс прикладной программы» . Оксфордский английский словарь (онлайн изд.). Издательство Оксфордского университета . (Требуется членство в учреждении или участвующее учреждение .)
  10. ^ Дата, CJ (2019). EF CODD и теория реляции: подробный обзор и анализ основных работ базы данных CODD . Lulu.com. п. 135. ISBN  978-1684705276 .
  11. ^ Дата, CJ; Codd, EF (январь 1975 г.). «Реляционные и сетевые подходы: сравнение интерфейсов прикладного программирования». В Рэндалле Рустин (ред.). Материалы семинара ACM-SIGMOD 1974 года по описанию данных, доступу и управлению . Sigmod Workshop 1974. Vol. 2. Энн Арбор, Мичиган: Ассоциация по компьютерной технике. С. 83–113. doi : 10.1145/800297.811532 . ISBN  978-1450374187 Полем OCLC   1175623233 .
  12. ^ Карл, Маламуд (1990). Анализ Novell Networks . Ван Ностренд Рейнхольд. п. 294. ISBN  978-0442003647 Полем Архивировано из оригинала 2021-01-26 . Получено 2020-09-19 .
  13. ^ Подпрыгнуть до: а беременный Джин, Бренда; Сахни, Саурабх; Шеват, Амир (2018). Проектирование веб -API . О'Рейли СМИ. ISBN  9781492026877 Полем Архивировано из оригинала 2023-04-10 . Получено 2023-03-21 .
  14. ^ Филдинг, Рой (2000). Архитектурные стили и дизайн сетевых программных архитектур (PhD). Калифорнийский университет, Ирвин. Архивировано с оригинала 22 января 2020 года . Получено 18 сентября 2020 года .
  15. ^ Доцика, Fefie (август 2010 г.). «Семантические API: масштабирование к семантической сети». Международный журнал управления информацией . 30 (4): 335–342. doi : 10.1016/j.ijinfomgt.2009.12.003 .
  16. ^ Одерский, Мартин; Spoon, Lex; Веннерс, Билл (10 декабря 2008 г.). «Объединение Scala и Java» . artima.com . Архивировано с оригинала 8 августа 2016 года . Получено 29 июля 2016 года .
  17. ^ Де Фигейредо, Луис Энрике; Ierusalimschy, Roberto ; Сон, Уолдемар Келес (1994). «Проектирование и реализация языка для приложений для расширения» . Группа графической компьютерной технологии Tecgraf : 273–284. Citeserx   10.1.1.47.5194 . S2CID   59833827 . Получено 29 июля 2016 года .
  18. ^ Синтес, Тони (13 июля 2001 г.). "Что такое Java API в любом случае?" Полем Javaworld . Архивировано из оригинала 2020-10-19 . Получено 2020-07-18 .
  19. ^ Уинтерс, Титус; Том Маншрек; Хайрум Райт, ред. (2020). Программное обеспечение в Google: уроки, извлеченные из программирования с течением времени . Себастополь, Калифорния: O'Reilly Media. ISBN  9781492082798 Полем OCLC   1144086840 .
  20. ^ Мастранджело, Луис; Понзанелли, Лука; Мокачи, Андреа; Ланца, Мишель; Хаусвирт, Матиас; Nystrom, Nathaniel (2015-10-23). «Используйте свой собственный риск: небезопасные API Java в дикой природе». Материалы Международной конференции ACM Sigplan по объектно-ориентированному программированию, системам, языкам и приложениям . OOPSLA 2015. Нью -Йорк, Нью -Йорк, США: Ассоциация по компьютерному оборудованию. С. 695–710. doi : 10.1145/2814270.2814313 . ISBN  978-1-4503-3689-5 .
  21. ^ "F2py.org" . F2py.org. Архивировано из оригинала 2011-07-04 . Получено 2011-12-18 .
  22. ^ Фаулер, Мартин. «Инверсия контроля» . Архивировано из оригинала 2011-01-23 . Получено 2011-08-25 .
  23. ^ Фаяд, Мохамед. «Объектно-ориентированные рамки приложения» . Архивировано из оригинала 2013-11-05 . Получено 2013-11-05 .
  24. ^ Левин, Дональд А. (1991). Руководство программиста POSIX . O'Reilly & Associates, Inc. с. 1. ISBN  9780937175736 Полем Архивировано с оригинала 22 августа 2016 года . Получено 2 августа 2016 года .
  25. ^ Запад, Джоэл; Дедрик, Джейсон (2001). «Стандартизация с открытым исходным кодом: повышение Linux в сетевую эру» (PDF) . Знания, технологии и политика . 14 (2): 88–112. doi : 10.1007/pl00022278 . S2CID   46082812 . Архивировано (PDF) из оригинала 27 августа 2016 года . Получено 2 августа 2016 года .
  26. ^ Microsoft (октябрь 2001 г.). «Поддержка Windows XP» . Microsoft. п. 4. Архивировано из оригинала на 2009-09-26.
  27. ^ «Введение LSB» . Linux Foundation. 21 июня 2012 года. Архивировано с оригинала 2015-04-02 . Получено 2015-03-27 .
  28. ^ Стоутон, Ник (апрель 2005 г.). «Обновление по стандартам» (PDF) . Usenix . Архивировано (PDF) из оригинала на 2009-03-27 . Получено 2009-06-04 .
  29. ^ Бирхофф, Кевин (23 апреля 2009 г.). Соответствие протоколу API в объектно-ориентированном программном обеспечении (PDF) (PhD). Университет Карнеги Меллона. ISBN  978-1-109-31660-5 . ProQuest   304864018 . Архивировано (PDF) из оригинала 11 октября 2016 года . Получено 29 июля 2016 года .
  30. ^ Уилсон, М. Джефф (10 ноября 2000 г.). «Получите умение с прокси и RMI» . Javaworld . Архивировано из оригинала 2020-07-20 . Получено 2020-07-18 .
  31. ^ Хеннинг, Мичи; Виноски, Стив (1999). Усовершенствованное программирование CORBA с C ++ . Аддисон-Уэсли . ISBN  978-0201379273 Полем Получено 16 июня 2015 года .
  32. ^ Бенлиман, Джамал; Шахрам Дэдрдар; Амит Шет (2008). «Услуги Mashups: новое поколение веб -приложений» . IEEE Internet Computing, Vol. 12, нет. 5 ​Институт инженеров электротехники и электроники. С. 13–15. Архивировано из оригинала в 2023-10-07 . Получено 2019-10-01 .
  33. ^ Никколай, Джеймс (2008-04-23), «Так что же такое предприятие, во всяком случае?» , Мир ПК , архивировав с оригинала 10 октября 2017 г.
  34. ^ Парр, Бен (21 мая 2009 г.). «Эволюция API социальных сетей» . МАЙСАБЛИЧЕСКИЙ . Архивировано из оригинала 11 августа 2016 года . Получено 26 июля 2016 года .
  35. ^ «Получите тенденции/место» . Платформа разработчика Twitter . Архивировано из оригинала 2020-06-17 . Получено 2020-04-30 .
  36. ^ Гарлан, Дэвид; Шоу, Мэри (январь 1994). «Введение в архитектуру программного обеспечения» (PDF) . Достижения в области разработки программного обеспечения и инженерии знаний . 1 Архивировано (PDF) из оригинала 6 мая 2021 года . Получено 8 августа 2016 года - через CMU Школу компьютерных наук.
  37. ^ Parnas, DL (1972). «О критериях, которые будут использоваться в разлагающихся системах в модули» . Коммуникации ACM . 15 (12): 1053–1058. doi : 10.1145/361598.361623 . S2CID   53856438 .
  38. ^ Майерс, Брэд А.; Stylos, Jeffrey (2016). «Повышение удобства использования API» . Коммуникации ACM . 59 (6): 62–69. doi : 10.1145/2896587 . S2CID   543853 .
  39. ^ Брайан Эллис, Джеффри Стайлос и Брэд Майерс. 2007. « Заводская модель в дизайне API: оценка юзабилити, архивировав 2022-03-21 на машине Wayback ». В материалах 29 -й Международной конференции по разработке программного обеспечения ( ICSE '07 ). IEEE Computer Society, США, 302–312. Doi : 10.1109/icse.2007.85 .
  40. ^ «Синхронный против асинхронного писания - упакованное контактное центр предприятия» - Cisco Devnet Archived 2022-08-03 на машине Wayback .
  41. ^ Сильва, Паулу (2019). «Глобальный рынок облачных микросервисов (с 2021 по 2026 год)» . Архивировано из оригинала 2020-02-18 . Получено 2022-03-29 .
  42. ^ "Веб -безопасность" . 2022-02-18. Архивировано из оригинала 2022-04-02 . Получено 2022-03-29 .
  43. ^ «Ключи API - что такое ключ API? | Блог Apilayer» . 2022-03-01. Архивировано из оригинала 2022-05-16 . Получено 2022-07-15 .
  44. ^ Де Тернай, Геррик (10 октября 2015 г.). «Бизнес -экосистема: создание экономического рва» . Boostcompanies . Архивировано с оригинала 2016-09-17 . Получено 2016-02-01 .
  45. ^ Бойд, Марк (2014-02-21). "Частный, партнер или общественность: какая стратегия API лучше всего подходит для бизнеса?" Полем ProgrammableWeb . Архивировано с оригинала 2016-07-18 . Получено 2 августа 2016 года .
  46. ^ Вайсброт, Элисон (7 июля 2016 года). «API -интерфейсы автомобильных услуг повсюду, но что в нем для партнерских приложений?» Полем Adexchanger . Архивировано из оригинала 28 июля 2020 года . Получено 14 августа 2020 года .
  47. ^ «Облачная документация API V4» . Cloudflare . 25 февраля 2020 года. Архивировано с оригинала 26 февраля 2020 года . Получено 27 февраля 2020 года .
  48. ^ Лью, Зелл (17 января 2018 г.). «API -интерфейсы автомобильных услуг есть везде, но что в нем для партнерских приложений» . Smashing Magazine . Архивировано из оригинала 21 февраля 2020 года . Получено 27 февраля 2020 года .
  49. ^ Ши, Лин; Жонг, Хао; Се, Дао; Ли, Мингху (2011). «Эмпирическое исследование эволюции документации API». Фундаментальные подходы к разработке программного обеспечения . Международная конференция по фундаментальным подходам к разработке программного обеспечения. Заметки лекции в информатике. Тол. 6603. С. 416–431. doi : 10.1007/978-3-642-19811-3_29 . ISBN  978-3-642-19810-6 Полем Получено 22 июля 2016 года .
  50. ^ «Guava-Libraries-Guava: Google Core Libraries для Java 1.6+» . Google Project Hosting . 2014-02-04. Архивировано из оригинала 26 марта 2014 года . Получено 2014-02-11 .
  51. ^ Оракул. «Как и когда установить API» . Java SE документация . Архивировано с оригинала 9 апреля 2016 года . Получено 2 августа 2016 года .
  52. ^ Таканаши, Дин (19 февраля 2020 г.). «Акамай: киберпреступники нападают на API на фирмы финансовых услуг» . Венчурная бит . Архивировано из оригинала 27 февраля 2020 года . Получено 27 февраля 2020 года .
  53. ^ Dekel, Uri; Херблб, Джеймс Д. (май 2009 г.). «Улучшение удобства использования документации API со знаниями настаивает». Институт исследований программного обеспечения, Школа компьютерных наук . Citeseerx   10.1.1.446.4214 .
  54. ^ Парнин, Крис; Treude, Cristoph (май 2011 г.). «Измерение документации API в Интернете». Web2se '11: Материалы 2 -го международного семинара по веб -2.0 для разработки программного обеспечения . С. 25–30. doi : 10.1145/1984701.1984706 . ISBN  9781450305952 Полем S2CID   17751901 .
  55. ^ Маалея, Уалид; Робиллард, Мартин П. (апрель 2012 г.). «Модели знаний в справочной документации API» (PDF) . IEEE транзакции на разработке программного обеспечения . Архивировано (PDF) из оригинала 22 августа 2016 года . Получено 22 июля 2016 года .
  56. ^ «Структура документа OpenAPI» . OpenAPI документация . Архивировано из оригинала 2022-11-06 . Получено 2022-11-06 .
  57. ^ «Аннотации» . Солнечные микросистемы . Архивировано из оригинала 2011-09-25 . Получено 2011-09-30 . Полем
  58. ^ «Оракул и конец программирования, как мы его знаем» . DRDOBBS. 2012-05-01. Архивировано с оригинала 2012-05-09 . Получено 2012-05-09 .
  59. ^ «API не могут быть защищены авторским правом, говорит судья по делу Oracle» . Tgdaily. 2012-06-01. Архивировано из оригинала 2012-12-21 . Получено 2012-12-06 .
  60. ^ « Oracle America, Inc. против Google Inc. » (PDF) . Проводной . 2012-05-31. Архивировано (PDF) из оригинала 2013-11-04 . Получено 2013-09-22 .
  61. ^ "Oracle Am., Inc. против Google Inc., № 13-1021, Fed. Cir. 2014" . Архивировано с оригинала 2014-10-10.
  62. ^ Розенблатт, Сет (9 мая 2014 г.). «Судебная сторона с Oracle Over Android в апелляции по патентам Java» . CNET . Архивировано с оригинала 2017-04-19 . Получено 2014-05-10 .
  63. ^ «Google Beats Oracle - Android использует« справедливое использование »Java API» . Ars Technica . 2016-05-26. Архивировано из оригинала 2017-01-20 . Получено 2016-07-28 .
  64. ^ Декер, Сьюзен (27 марта 2018 г.). «Oracle выигрывает возрождение дела в миллиард долларов против Google» . Bloomberg Businessweek . Архивировано с оригинала 9 января 2022 года . Получено 27 марта 2018 года .
  65. ^ Ли, Тимоти (25 января 2019 г.). «Google просит Верховный суд отменить катастрофическое решение по авторским правам API» . Ars Technica . Архивировано с оригинала 23 апреля 2019 года . Получено 8 февраля 2019 года .
  66. ^ Vkimber (2020-09-28). «Google LLC против Oracle America, Inc» . LII / Институт юридической информации . Архивировано из оригинала 2021-04-15 . Получено 2021-03-06 .
  67. ^ «Верховный суд Соединенных Штатов, № 18–956, Google LLC, Petitioner v. Oracle America, Inc» (PDF) . 5 апреля 2021 года. Архивировал (PDF) из оригинала 5 апреля 2021 года . Получено 25 апреля 2021 года .

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bc1bda2312234776ad9f07f90074143e__1726193820
URL1:https://arc.ask3.ru/arc/aa/bc/3e/bc1bda2312234776ad9f07f90074143e.html
Заголовок, (Title) документа по адресу, URL1:
API - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)