Как да обясня разликата между API и SDK за хора, които не знаят нищо за тях?


Отговор 1:

И двете са насочени към разработчиците, но на различни нива на завършеност. Разликата е свързана с това, къде седите като разработчик спрямо крайния потребител и дали създавате нещо от нулата или консумирате съществуваща функционалност и я пакетирате за краен потребител. Може да има сива зона между създаването и консумацията, защото те могат да се случат толкова близо един до друг - разграничението може да се превърне в разрязване на косата в някои случаи.

SDK е като кутия с Legos - трябва да направите цялото сглобяване, но парчетата и документацията са ви изготвени. По този начин вие създавате главно, защото SDK е основно само суровини и документация.

API е „завършено създаване“ за конкретна цел, но без потребителски интерфейс. Така че, когато работите с API, вие консумирате този API, докато създавате някакъв потребителски интерфейс за крайния потребител. По този начин има комбинация от създаване и потребление при приближаване към API.


Отговор 2:

Не съм сигурен, че бих нарекъл SDK торта микс, нито бих нарекъл API за рецепта. Другите два отговора са технически правилни, но мисля, че част от проблема тук е един от аудиторията. Това не са технически хора, така че това, което изглежда като ясно обяснение, може да не е такова.

Мисля, че една аналогия е наред, но тя трябва наистина да покаже разликата между двете неща и, както вие казвате, смесване на торти и рецепта всъщност не осигуряват това. Моят пример използва две несвързани неща, а не свързани, и опростява нещата, но мисля, че може да помогне.

Моето прекалено опростяване за API е да разгледам конкретно CRUD API. Като такъв може да се счита, че е подобен на банка. Можете да отворите акаунт, за да задържите парите си (създайте), можете да проверите баланса на акаунта (прочетете), можете да добавите или премахнете пари от него (актуализиране) и можете да го затворите (изтриете). Може да ви бъде позволено да гледате, да депозирате пари и да вземате пари от акаунти, принадлежащи на други лица (удостоверяване и упълномощаване).

SDK, от друга страна, е като набор от инструменти. Той предоставя неща, които можете да използвате, за да изградите или поддържате нещо. В него може да намерите чук, някои отвертки, клещи и т.н.


Отговор 3:

Това ми напомня дискусия с моя приятел химик, който се дразни от дискусията, която продължаваше с друг приятел на софтуерния инженер.

Трябваше да му обясним нещата, затова избрахме нещо, в което той вече е господар.

Така че дискусията мина така:

CF (приятел на химика): Момчета, че ме дразните с нещо за API и някои SDK, какви са тези?

САЩ (аз и SF (приятел на софтуера)): хаха, добре ..

САЩ: Нека приемете API като нещо като предметите, които държите в магазина си. Подобно на таблетки, инжекции, сироп, напитки и други неща.

И SDK може да бъде колекция от всички тези по-горе артикули, който е вашият магазин.

Ако някой се нуждае от инжекция, това означава, че трябва да използва API.

Ако някой има нужда от много лекарства, може да избере да посети магазин за аптеки.

CF: О, нали?. Винаги не получих много, но това помогна.