2010-09-09 20 views
44

Cuando le pregunto a la gente sobre la diferencia entre una API y una biblioteca, obtengo opiniones diferentes. Algunos dan this kind de definición, diciendo que una API es una especificación y una biblioteca es una aplicación ...¿Todavía hay una diferencia entre una biblioteca y una API?

Algunos le dirán this type de definición, que una API es un montón de funciones asignadas a cabo, y una biblioteca es simplemente la distribución en forma compilada

Todo esto me hace preguntarme, en un mundo de código web, frameworks y código abierto, ¿hay realmente una diferencia práctica? ¿Podría una biblioteca como jQuery o cURL cruzarse en la definición de una API?

Además, ¿los marcos se cruzan en esta categoría? ¿Hay alguna parte de Rails o Zend que pueda ser más "similar a API" o "libraryesque"?

Muchas ganas algunas reflexiones iluminadoras :)

+0

"¿Todavía hay una diferencia entre una biblioteca y una API?" Respuesta: ¡Mucho! – Annjawn

+2

+1, buena pregunta! – Pacerier

Respuesta

53

Mi opinión es que cuando hablo de una API, significa solo las partes que están expuestas al programador. Si hablo de una 'biblioteca', también me refiero a todo lo que funciona "bajo el capó", aunque forma parte de la biblioteca.

+0

Excelente distinción y un gran punto sobre cómo pensamos escribir código reutilizable. – Trafalmadorian

+3

Hoy no solo las bibliotecas tienen API, creo que es por eso que esta confusión ocurre. – Andrey

15

API es parte de la biblioteca que define cómo va a interactuar con código externo. Cada biblioteca tiene API, API es la suma de todas las cosas públicas/exportadas. Hoy en día, el significado de API se amplía. podríamos llamar la forma en que el sitio/servicio web interactúa con el código como API también. También puede decir que algún dispositivo tiene API: el conjunto de comandos que puede llamar.

A veces estos términos se pueden mezclar. Por ejemplo, tiene alguna aplicación de servidor (como TFS, por ejemplo). Tiene API con él, y esta API se implementa como una biblioteca. Pero esta biblioteca es solo una capa intermedia entre usted y no el que ejecuta sus llamadas. Pero si la biblioteca en sí contiene todo el código de acción, no podemos decir que esta biblioteca es API.

+0

¡Gran idea! Gracias por opinar sobre esto :) – Trafalmadorian

10

Creo que Library es un conjunto de todas las clases y funciones que se pueden utilizar desde nuestro código para hacer nuestra tarea fácilmente. Pero la biblioteca puede contener algunas de sus funciones privadas para su uso que no desea exponer.

API es una parte de la biblioteca que está expuesta al usuario. Entonces, cualquiera sea la documentación que tengamos sobre una biblioteca, la llamamos API Documentation porque contiene solo aquellas clases y funciones a las que tenemos acceso.

0

En clara y un lenguaje conciso

Biblioteca: Colección de todas las clases y métodos almacenados para la re-usabilidad

API: Parte de biblioteca clases y métodos que pueden ser utilizados por un usuario en su/su código.

0

Según mi punto de vista, cualesquiera que sean las funciones son accesibles a invocador, podemos llamado como API en el archivo de biblioteca, archivo de biblioteca que tiene algunas de las funciones que es privada, no podemos acceder a ellos ..

14

Un biblioteca contiene trozos reutilizables de código.

Estos códigos de biblioteca reutilizables están vinculados a su programa a través de APIs (Interfaces de programación de aplicaciones).Es decir, API es interfaz a la biblioteca a través del cual los códigos reutilizables están vinculados a un programa de aplicación.

enter image description here

Por ejemplo, en lenguajes procedimentales como C, la biblioteca math.c contiene las implementaciones de función matemática, tal como sqrt, exp, log etc. contiene la definición de todas estas funciones.

Se puede hacer referencia a estas funciones utilizando la API math.h que describes and prescribes the expected behavior.

+1

Después de mucha búsqueda, esta respuesta tiene más sentido. Hay muchas opiniones por ahí, con muy pocos respaldados por ejemplos. – Ryan

3

primero tenemos que definir una interfaz ...

interfaz: es el medio por el cual 2 "cosas" hablar entre sí e intercambiar información. "cosas" podría ser un (1) humano o (2) un código en ejecución de cualquier tipo (por ejemplo, biblioteca, aplicación de escritorio, sistema operativo, servicio web ... etc.).

si un ser humano quiere habla con un programa que necesitan gráfica de usuario interfaz (GUI) o la interfaz de línea de comandos (CLI). ambos son tipos de interfaces que los humanos (pero no los programas) desearían usar.

si, sin embargo, un código en ejecución (de cualquier tipo) desea hablar con otro código en ejecución (de cualquier tipo) no necesita o quiere una GUI o CLI, necesita una Programación de aplicaciones Interfaz (API) .

para responder a la pregunta original del cartel: la biblioteca es un tipo de código en ejecución y la API es el medio por el cual este código de ejecución habla con otros códigos en ejecución.

Cuestiones relacionadas