Есть ли разница между библиотекой и API? - PullRequest
47 голосов
/ 09 сентября 2010

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

Некоторые скажут вам этот тип определения,что API - это набор отображенных функций, а библиотека - это просто дистрибутив в скомпилированном виде.

Все это заставляет задуматься, в мире веб-кода, фреймворков и open-source, действительнопрактическая разница больше?Может ли такая библиотека, как jQuery или cURL, перейти в определение API?

Кроме того, рамки вообще переходят в эту категорию?Есть ли часть Rails или Zend, которая может быть более «API-подобной» или «библиотечной»?

Действительно с нетерпением жду некоторых просветляющих мыслей:)

Ответы [ 7 ]

55 голосов
/ 09 сентября 2010

Я считаю, что когда я говорю об API, это означает только те части, которые доступны программисту. Если я говорю о «библиотеке», то я также имею в виду все, что работает «под капотом», хотя, тем не менее, является частью библиотеки.

17 голосов
/ 19 января 2015

A библиотека содержит многократно используемые фрагменты кода (программа).

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

enter image description here

Например, в процедурных языках, таких как C, библиотека math.c содержит реализации математических функций, таких как sqrt, exp, log и т. Д. Она содержит определение всех этих функций.

На эту функцию можно ссылаться с помощью API math.h, который описывает и предписывает ожидаемое поведение .

15 голосов
/ 09 сентября 2010

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

Иногда эти термины можно смешивать друг с другом.Например, у вас есть серверное приложение (например, TFS).У него есть API, и этот API реализован как библиотека.Но эта библиотека - всего лишь средний уровень между вами, а не тот, кто выполняет ваши звонки.Но если сама библиотека содержит весь код действия, то мы не можем сказать, что эта библиотека является API.

11 голосов
/ 06 сентября 2012

Я думаю, что Library - это набор всех классов и функций, которые можно использовать из нашего кода, чтобы легко выполнить нашу задачу. Но библиотека может содержать некоторые из своих частных функций для своего использования, которые она не хочет показывать.

API является частью библиотеки, которая выставлена ​​пользователю. Поэтому, какую бы документацию мы не имели относительно библиотеки, мы называем ее API Documentation, поскольку она содержит только те классы и функции, к которым у нас есть доступ.

3 голосов
/ 20 ноября 2015

сначала мы должны определить интерфейс ...

Интерфейс : это средство, с помощью которого две "вещи" общаются друг с другом и обмениваются информацией.«вещи» могут быть (1) человеком или (2) работающим кодом любого вида (например, библиотека, приложение для ПК, ОС, веб-сервис и т. д.).

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

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

, чтобы ответить на оригинальный вопрос автора: библиотека - это тип работающего кода, а API -означает, что этот рабочий код общается с другими рабочими кодами.

0 голосов
/ 29 декабря 2014

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

0 голосов
/ 12 октября 2013

На понятном и лаконичном языке

Библиотека: Коллекция всех классов и методов, сохраняемая для повторного использования

API: Часть библиотеки классов и методов, которые могут бытьиспользуется пользователем в его / ее коде.

...