首页 文章

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

提问于
浏览
46

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

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

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

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

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

7 回答

  • 11

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

  • 16

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

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

    enter image description here

    例如,在像C这样的过程语言中,库 math.c 包含数学函数的实现,例如 sqrtexplog 等 . 它包含所有这些函数的定义 .

    可以使用API math.h 引用这些函数,其中describes and prescribes the expected behavior .

  • 0

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

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

  • 15

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

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

  • 54

    我们首先定义一个接口......

    Interface :是2 "things"彼此交谈并交换信息的手段 . "things"可以是(1)人类或(2)任何类型的运行代码(例如,库,桌面应用程序,OS,Web服务......等) .

    如果一个人想要与一个程序对话他需要图形用户 interface (GUI)或命令行 interface (CLI) . 两者都是人类(但不是程序)想要使用的接口类型 .

    但是,如果正在运行的代码(任何类型)想要与另一个正在运行的代码(任何类型)进行通信,它不需要或不需要GUI或CLI,那么它需要一个应用程序编程 Interface (API) .

    所以回答原始的海报问题:库是一种运行代码,API是运行代码与其他运行代码对话的手段 .

  • 3

    用简洁明了的语言

    库:为可重用性而存储的所有类和方法的集合

    API:用户可以在他/她的代码中使用的 library 类和方法的一部分 .

  • 0

    根据我的观点,无论调用者可以访问哪些函数,我们都可以在库文件中调用api,库文件中有一些私有的函数,我们无法访问它们 .

相关问题