库和API之间是否仍然存在差异?

Tra*_*ian 50 api paradigms frameworks

每当我向人们询问API和库之间的区别时,我都会得到不同的意见.有些人给出了这种定义,说API是规范,库是实现......

有些人会告诉你这种类型的定义,API是一堆映射的函数,而Library只是编译形式的分发.

所有这些让我想知道,在一个Web代码,框架和开源的世界中​​,是否真的存在实际的差异?像jQuery或cURL这样的库可以交叉到API的定义吗?

此外,框架是否完全交叉到这个类别?是否有一些Rails或Zend可能更像"API-like"或"libraryesque"?

真的很期待一些有启发性的想法:)

teu*_*kam 57

我的观点是,当我谈到API时,它只意味着暴露给程序员的部分.如果我谈到一个"图书馆",那么我也意味着所有在"引擎盖下"工作的东西,不过虽然是图书馆的一部分.

  • 今天不仅图书馆有API,我认为这就是为什么这种混乱发生的原因. (3认同)

hac*_*cks 18

包含的代码重复使用的组块(一软件程序).

这些可重用的库代码通过API (应用程序编程接口)链接到您的程序.也就是说,API是库的接口,可重用代码通过该接口链接到应用程序.
简单来说,可以说API是两个软件程序之间的接口,便于它们之间的交互.

在此输入图像描述

例如,在像C语言程序,库math.c包含数学函数的实现方式中,如sqrt,exp,log等等它包含的所有这些功能的定义.

这些功能可以通过使用API,引用math.h描述,规定预期的行为.

  • 经过大量搜索,此答案最有意义。那里有很多意见,很少有实例支持。 (2认同)

And*_*rey 15

API是库的一部分,它定义了它如何与外部代码交互.每个库都有API,API是所有公共/导出内容的总和.现在API的含义被拓宽了.我们可能会将网站/服务与代码交互的方式称为API.您还可以告诉某些设备有API - 您可以调用的命令集.

有时这些术语可以混合在一起.例如,您有一些服务器应用程序(例如TFS).它有API,这个API是作为库实现的.但是这个库只是你而不是执行你的电话的人之间的中间层.但是如果库本身包含所有动作代码,那么我们不能说这个库 API.


Sha*_*wat 11

我认为这Library是一组所有类和函数,可以从我们的代码中轻松地完成我们的任务.但是库可以包含一些私有函数用于它的使用,它不希望公开它.

API是图书馆的一部分,向用户展示.因此,无论我们有关于库的文档,我们都称它为一个API Documentation因为它只包含我们可以访问的那些类和函数.