我对 API 的理解仅限于向某个 URL 发送 ajax 调用,然后对返回的数据执行某些操作。例如,我可以使用烂番茄 API 中的数据来搜索和操作烂番茄中的数据,例如给定电影的电影评论和元数据。
我感到困惑的是,为什么它是一个 API,同时 jQuery 也被认为是一个 API(许多其他“JavaScript API”也是如此)。例如,我似乎没有来回发送请求来使用 jQuery,因为我可以在本地文件结构中包含 .js
文件。这和它提供给我的内置方法有关系吗?
如果是这样,库和 API 之间有什么区别?
这是维基百科的定义:
An application programming interface (API) specifies how some software components should interact with each other. In addition to accessing databases or computer hardware, such as hard disk drives or video cards, an API can be used to ease the work of programming graphical user interface components.
http://en.wikipedia.org/wiki/Application_programming_interface
这在 JavaScript 中意味着什么?就我如何使用它而言,这意味着什么?有人能花点时间用实用(非抽象)的外行术语解释一下吗?
最佳答案
API 只是一个发布的合约。
它定义了可用的操作,以及它们各自的输入和输出(如果存在)。
无论您是调用 Web 服务、JavaScript 函数还是使用二进制文件,都没有关系。他们都有一些正式发布的契约(Contract),您可以通过契约(Contract)进行互动。
因此,虽然 Web 服务具有非常严格的契约,因为仅公开公共(public)方法,但 jQuery 定义了一组旨在供外部公共(public)使用的方法。
示例:
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"
在上面的示例中,该对象有一个供使用的公共(public) API,但它也有一些您可以操作但无意操作的成员。可能有很多原因让你的对象中包含这样的东西,但弄乱它们可能会产生意想不到的后果。
只要作者维护外部公共(public)合约(API),他就可以自由移动、重命名和更改实现细节。
再说一遍,API 是一份记录在案的契约(Contract)...仅此而已。
关于javascript - "JavaScript APIs"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21266863/