60

APIとライブラリの違いについて人々に尋ねるたびに、私は異なる意見を受け取ります。APIは仕様であり、ライブラリは実装であると言う人もいます...

このタイプの定義については、APIはマップされた関数の集まりであり、ライブラリはコンパイルされた形式の単なるディストリビューションであると言う人もいます。

これはすべて、Webコード、フレームワーク、およびオープンソースの世界で、実際にはもう実際的な違いがあるのだろうかと思います。jQueryやcURLのようなライブラリはAPIの定義にクロスオーバーできますか?

また、フレームワークはこのカテゴリにまたがっていますか?より「APIに似た」または「ライブラリ風」である可能性のあるRailsまたはZendの部分はありますか?

いくつかの啓発的な考えを本当に楽しみにしています:)

4

8 に答える 8

61

私の見解では、API について話すとき、それはプログラマーに公開される部分のみを意味します。私が「ライブラリ」について話す場合、ライブラリの一部ではありますが、「ボンネットの下」で動作しているすべてのものも意味します。

于 2010-09-09T16:48:41.250 に答える
25

ライブラリには、再利用可能なコードのチャンク (ソフトウェア プログラム) が含まれています。

ライブラリのこれらの再利用可能なコードは、API (アプリケーション プログラミング インターフェイス) を介してプログラムにリンクされます。つまり、この API は、再利用可能なコードをアプリケーション プログラムにリンクするためのライブラリへのインターフェイスです。
簡単に言えば、API は 2 つのソフトウェア プログラム間の相互作用を容易にする、2 つのソフトウェア プログラム間のインターフェイスであると言えます

ここに画像の説明を入力

たとえば、C のような手続き型言語では、ライブラリには、などのmath.c数学関数の実装が含まれています。これらすべての関数の定義が含まれています。sqrtexplog

math.hこれらの機能は、期待される動作を記述および規定するAPI を使用して参照できます。

そうは言っても、API は仕様(math.h提供するすべての関数、それらの引数と返すデータなどについて説明します) であり、ライブラリは実装(math.cこれらの関数のすべての定義を含む) です。

于 2015-01-19T15:32:34.733 に答える
17

APIは、外部コードとの相互作用を定義するライブラリの一部です。すべてのライブラリにはAPIがあり、APIはすべてのパブリック/エクスポートされたものの合計です。最近ではAPIの意味が広がります。Webサイト/サービスがコードと対話する方法をAPIと呼ぶこともあります。また、一部のデバイスにAPI(呼び出すことができるコマンドのセット)があることもわかります。

この用語が混在している場合があります。たとえば、サーバーアプリ(TFSなど)があります。APIがあり、このAPIはライブラリとして実装されています。ただし、このライブラリは、呼び出しを実行するライブラリではなく、ユーザー間の中間層にすぎません。ただし、ライブラリ自体にすべてのアクションコードが含まれている場合、このライブラリがAPIであるとは言えません。

于 2010-09-09T16:48:08.613 に答える
12

Libraryこれは、タスクを簡単に実行するためにコードから使用できるすべてのクラスと関数のセットだと思います。ただし、ライブラリには、公開したくない使用のためのプライベート関数の一部を含めることができます。

APIユーザーに公開されるライブラリの一部です。したがって、ライブラリに関するドキュメントが何であれ、API Documentationアクセスできるクラスと関数のみが含まれているため、それを と呼びます。

于 2012-09-06T12:04:13.243 に答える
3

最初にインターフェースを定義する必要があります...

インターフェイス: 2 つの「もの」が互いに会話し、情報を交換するための手段です。「モノ」は、(1) 人間、または (2) 実行中のあらゆる種類のコード (例: ライブラリ、デスクトップ アプリケーション、OS、Web サービスなど) である可能性があります。

人間がプログラムと対話したい場合、グラフィカル ユーザーインターフェイス(GUI) またはコマンド ラインインターフェイス(CLI) が必要です。どちらも人間 (プログラムではない) が使用したいインターフェースのタイプです。

ただし、実行中のコード (任意の種類) が別の実行中のコード (任意の種類) と対話したい場合は、GUI や CLI は必要ありません。むしろ、アプリケーション プログラミングインターフェイス(API) が必要です。

元のポスターの質問に答えるために:ライブラリは実行中のコードの一種であり、APIはこの実行中のコードが他の実行中のコードと対話する手段です。

于 2015-11-20T17:24:26.037 に答える
0

明確で簡潔な言葉で

ライブラリ: 再利用のために保存されたすべてのクラスとメソッドのコレクション

API: ユーザーが自分のコードで使用できるライブラリクラスおよびメソッドの一部。

于 2013-10-12T13:55:10.063 に答える
0

私の見解によると、関数が invoker にアクセスできるものは何でも、ライブラリ ファイルで api として呼び出すことができます。ライブラリ ファイルには private である関数の一部が含まれていますが、それらにアクセスすることはできません..

于 2014-12-29T06:41:49.113 に答える