【发布时间】:2014-05-26 14:14:47
【问题描述】:
维基百科定义:
在计算机编程中,应用程序编程接口 (API) 指定了一些软件组件应如何相互交互。
我看到有些人将库的 api 视为文档。就像在 api.jquery.com 上一样,它们展示了 jquery 库是如何被使用的。我还看到人们将 api 定义为库的可见部分。
我了解 web api 的工作原理:您可以使用一个接口与使用 JSON 或 XML 的 web 应用程序进行交互,例如youtube api。这样我就可以获得有关 youtube 视频或播放列表的信息。
我了解到有不同类型的 api。 Web api's、library api's、OS api's etc.
这里有一些例子,希望我能解开我的困惑。
示例 1
如果我在 C++ 中包含一个库,那么头文件就是 API?像 Win32/Winapi 这样的 api 怎么样。为什么这被称为 api 而不是库?难道我不只是将它包含在我的源代码中并开始使用它吗?
示例 2
如果我想在 C# 中使用库,我会在我的 bin 文件夹中添加一个 .DLL,并告诉编译器我想使用该库(即使用 System.Web)。 api 是否只是库中编写的类中的所有公共成员(因此可见部分)?
示例 3
假设公司 X 编写了一个 MMORPG 游戏,但他们没有网站 api。我想制作一个 Windows 应用程序,并且希望可以在我的应用程序中查看任何字符。我将如何与游戏通信以获取这些数据? api写在哪里?如何查看?
操作系统会有什么样的 api?我怎么能用它?有什么例子吗?
【问题讨论】:
标签: language-agnostic terminology