APIとSDKの違いを何も知らない人に説明するにはどうすればよいですか?


答え 1:

どちらも開発者を対象としていますが、仕上げのレベルは異なります。 違いは、エンドユーザーに対する開発者としての立場と、ゼロから何かを作成するのか、既存の機能を使用してエンドユーザーにパッケージ化するのかに関係しています。 作成と消費の間には灰色の領域が存在することがあります。これらは非常に近くで発生する可能性があるためです。場合によっては、区別がヘアスプリットに変わることがあります。

SDKはレゴの箱のようなものです。すべてのアセンブリを実行する必要がありますが、断片とドキュメントはレイアウトされています。 このように、主に作成しているのは、SDKが主に単なる原材料とドキュメントであるためです。

APIは、特定の目的のための「完成した作成物」ですが、ユーザーインターフェイスはありません。 そのため、APIを使用するときは、エンドユーザー向けの何らかのユーザーインターフェイスを作成しながら、そのAPIを使用します。 したがって、APIに近づくと、作成と消費が混在します。


答え 2:

SDKをケーキミックスと呼ぶか、APIをレシピと呼ぶかは定かではありません。 他の2つの答えは技術的には正しいですが、ここでの問題の一部は聴衆の一人だと思います。 これらは技術的な人ではないので、明確な説明のように見えるものはそうではないかもしれません。

アナロジーは良いと思いますが、2つのことの違いを本当に示す必要があります。そして、あなたが言うように、ケーキのミックスとレシピはそれを本当に提供しません。 私の例では、関連するものではなく、2つの無関係なものを使用し、物事を単純化しすぎていますが、役に立つかもしれません。

APIを単純化しすぎているのは、CRUD APIを具体的に見ることです。 そのため、銀行に似ていると考えることができます。 アカウントを開いてお金を保持(作成)、アカウントの残高を確認(読み取り)、追加または削除(更新)、閉鎖(削除)できます。 閲覧、入金、および他のアカウント(認証と承認)からのお金の受け取りが許可される場合があります。

一方、SDKはツールセットのようなものです。 何かを構築または保守するために使用できるものを提供します。 ハンマー、ドライバー、プライヤーなどが入っている場合があります。


答え 3:

これは、他のソフトウェアエンジニアの友人との議論に悩まされていた化学者の友人との議論を思い出させます。

私たちは彼に物事を説明しなければならなかったので、彼がすでにマスターであるものを選びました。

したがって、議論は次のようになりました。

CF(Chemist Friend):あなたはAPIとSDKについて何かで私を苛立たせていますが、それらは何ですか?

US(me and SF(software friend)):ハハ、大丈夫..

米国:錠剤、注射剤、シロップ、ドリンクなど、APIをストアに保管するアイテムのようなものと考えてください。

また、SDKはこれらすべてのアイテムのコレクションであり、これがストアです。

注入が必要な場合、APIを使用する必要があります。

誰かがたくさんの薬を必要とするなら、彼らは薬局を訪れることを選ぶことができます。

CF:ああ、そうだろうか。とにかくあまり得られなかったが、これは助けた。