2010-09-09 22 views
44

Ogni volta che chiedo alle persone la differenza tra un'API e una libreria, ottengo opinioni diverse. Alcuni danno a this kind di definizione, dicendo che un'API è una specifica e una libreria è un'implementazione ...Esiste ancora una differenza tra una libreria e un'API?

Alcuni ti diranno che this type di definizione, che un'API è un gruppo di funzioni mappate e una Libreria è solo la distribuzione in forma compilata.

Tutto ciò mi meraviglia, in un mondo di codice Web, framework e open-source, c'è davvero una differenza pratica? Potrebbe una libreria come jQuery o cURL crossover nella definizione di un'API?

Inoltre, le strutture passano in questa categoria? C'è una parte di Rails o Zend che potrebbe essere più "API-like" o "libraryesque"?

davvero impaziente di alcune riflessioni illuminanti :)

+0

"Esiste ancora una differenza tra una libreria e un'API?" Risposta: Molto molto! – Annjawn

+2

+1, buona domanda! – Pacerier

risposta

53

La mia opinione è che quando parlo di un'API, significa solo le parti che sono esposte al programmatore. Se parlo di una "biblioteca", intendo anche tutto ciò che funziona "sotto il cofano", sebbene sia comunque parte della biblioteca.

+0

Eccellente distinzione e un grande punto nel modo in cui pensiamo di scrivere codice riutilizzabile. – Trafalmadorian

+3

Oggi non solo le librerie hanno API, penso sia per questo che questa confusione avvenga. – Andrey

15

API fa parte della libreria che definisce come andrà a interagire con codice esterno. Ogni libreria ha API, l'API è la somma di tutte le cose pubbliche/esportate. Oggi il significato dell'API è ampliato. potremmo chiamare il modo in cui il sito web/il servizio interagiscono con il codice come API. Puoi anche dire che alcuni dispositivi dispongono di API: il set di comandi che puoi chiamare.

A volte questi termini possono essere combinati insieme. Ad esempio hai qualche app del server (come TFS per esempio). Ha API con esso e questa API è implementata come una libreria. Ma questa libreria è solo uno strato intermedio tra te e non quello che esegue le tue chiamate. Ma se la libreria stessa contiene tutti i codici di azione, non possiamo dire che questa libreria sia l'API.

+0

Grande intuizione !! Grazie per la valutazione su questo :) – Trafalmadorian

10

Penso che Library sia un insieme di tutte le classi e funzioni che possono essere utilizzate dal nostro codice per svolgere facilmente il nostro compito. Ma la libreria può contenere alcune delle sue funzioni private per il suo utilizzo che non vuole esporre.

API è una parte della libreria che è esposta all'utente. Quindi, qualunque sia la documentazione che abbiamo su una libreria, la chiamiamo API Documentation perché contiene solo le classi e le funzioni a cui abbiamo accesso.

0

in modo chiaro e conciso

biblioteca: raccolta di tutte le classi e metodi memorizzati per la ri-usabilità

API: Parte della biblioteca classi e metodi che possono essere utilizzati da un utente nella sua/il suo codice.

0

Secondo il mio punto di vista, quali che siano le funzioni sono accessibili a invoker, possiamo chiamato come api in file di libreria, file di libreria avere alcune delle funzioni che è privato, non possiamo accedervi ..

14

Una biblioteca contiene chunk di codice riutilizzabili.

Questi codici riutilizzabili di libreria sono collegati al programma tramite le API (Interfacce di programmazione dell'applicazione).Cioè, l'API è l'interfaccia nella libreria tramite la quale i codici riutilizzabili sono collegati a un programma applicativo.

enter image description here

Per esempio, in linguaggi procedurali come il C, la libreria math.c contiene le implementazioni di funzioni matematiche, come sqrt, exp, log ecc contiene la definizione di tutte queste funzioni.

Queste funzioni possono essere referenziate utilizzando l'API math.h che describes and prescribes the expected behavior.

+1

Dopo molte ricerche, questa risposta ha più senso. Ci sono molte opinioni là fuori, con pochissimi sostenuti da esempi. – Ryan

3

dobbiamo prima definire un'interfaccia ...

Interfaccia: è il mezzo attraverso cui 2 "cose" parlano tra loro e lo scambio di informazioni. "cose" potrebbe essere un (1) umano o (2) un codice in esecuzione di qualsiasi tipo (ad esempio libreria, applicazione desktop, sistema operativo, servizio Web ... ecc.).

se un essere umano vuole parla con un programma ha bisogno di utente grafica interfaccia (GUI) o riga comandi interfaccia (CLI). entrambi sono tipi di interfacce che gli umani (ma non i programmi) vorrebbero usare.

se un codice in esecuzione (di qualsiasi tipo) desidera parlare con un altro codice in esecuzione (di qualsiasi tipo) non necessita o desidera una GUI o CLI, necessita piuttosto di un'interfaccia di programmazione dell'applicazione (API) (API) .

in modo tale da rispondere alla domanda poster originale: la libreria è un tipo di codice in esecuzione e l'API è il mezzo con cui questo codice in esecuzione comunica con altri codici in esecuzione.

Problemi correlati