2014-01-21 4 views
2

Мое понимание API-интерфейсов ограничено тем, где я отправляю аякс-вызовы на определенный URL-адрес и что-то делаю с возвращаемыми данными. Например, я могу использовать данные из API Rotten Tomatoes для поиска и обработки данных из Rotten Tomatoes, таких как обзоры фильмов и метаданные для данного фильма.Что означает «JavaScript API»?

Что меня смущает, так это то, что что - это API, который также является API-интерфейсом (как и десятки других «API-интерфейсов JavaScript»). Кажется, я не отправляю запросы туда и обратно, чтобы иметь возможность использовать jQuery, например, так как я могу включить файл .js в свою локальную файловую структуру. Связано ли это со встроенными методами, которые он мне предоставляет?

Если да, то в чем разница между библиотекой и API?

Это определение Википедии:

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

http://en.wikipedia.org/wiki/Application_programming_interface

Что это означает в контексте JavaScript? И что это означает с точки зрения того, как я его использую? Может ли кто-нибудь принять момент и объяснить это на практических (не абстрактных) условиях непрофессионала?

+3

jquery - это библиотека, и это *** имеет *** апи. http://en.wikipedia.org/wiki/Application_programming_interface термин 'api' часто используется неправильно. –

+1

так, в каком смысле это API? Как человек использует его? Для чего его используют? –

+5

Api указан здесь: http://api.jquery.com api - это не что иное, как спецификация того, как вы должны взаимодействовать с приложением или в этом случае с библиотекой. –

ответ

2

API всего лишь опубликованный договор.

Он определяет операции доступны, и их соответствующие входы и выходы, если они существуют.

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

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

Пример:

var MyObject = function(){ 
    var _state = "I'm private"; 

    //Not intended for public consumption 
    this._prefix = "Hello, my name is "; 

    //Part of formal API 
    this.name = "Johnson"; 
}; 

// Part of formal API 
MyObject.prototype.sayHello = function(){ 
    console.log(this._prefix + this.name); 
}; 

var obj = new MyObject(); 
obj.name = "Josh"; 
obj.sayHello(); // "Hello, my name is Josh" 

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

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

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

+1

Отличный ответ, приветствия – Wex

+1

спасибо за обновление. даже лучше. –

0

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

Смежные вопросы