Jak vysvětlím rozdíl mezi API a SDK lidem, kteří o nich nic nevědí?


Odpověď 1:

Oba jsou zaměřeny na vývojáře, ale na různé úrovně cíle. Rozdíl má co do činění s tím, kde sedíte jako vývojář ve vztahu k koncovému uživateli, a zda vytváříte něco od nuly nebo spotřebováváte existující funkčnost a zabalíte je pro koncového uživatele. Mezi vytvářením a konzumací může existovat šedá oblast, protože se mohou vyskytovat tak blízko u sebe - v některých případech se může tento rozdíl změnit na vlasy.

SDK je jako krabička Legos - musíte provést veškerou montáž, ale kusy a dokumentace jsou pro vás připraveny. Tímto způsobem hlavně vytváříte, protože sada SDK je hlavně jen suroviny a dokumentace.

API je „hotové vytvoření“ pro konkrétní účel, ale bez uživatelského rozhraní. Když tedy pracujete s rozhraním API, spotřebováváte toto rozhraní API při vytváření jakéhokoli uživatelského rozhraní pro koncového uživatele. Při přístupu k API tedy existuje kombinace tvorby a spotřeby.


Odpověď 2:

Nejsem si jistý, zda bych zavolal SDK dortový mix, ani neříkám API receptem. Další dvě odpovědi jsou technicky správné, ale myslím si, že součástí problému je publikum. Nejedná se o technické lidi, takže to, co vypadá jako jasné vysvětlení, nemusí být takové.

Myslím, že analogie je v pořádku, ale musí skutečně ukázat rozdíl mezi těmito dvěma věcmi, a jak říkáte, mix dortů a recept to ve skutečnosti neposkytují. Můj příklad používá spíše dvě nesouvisející věci než související a věci zjednodušuje, ale myslím, že by to mohlo pomoci.

Moje nadměrné zjednodušení pro API je podívat se konkrétně na CRUD API. Jako takový by mohl být považován za podobný bance. Můžete si otevřít účet a držet své peníze (vytvořit), můžete zkontrolovat zůstatek svého účtu (načíst), můžete z něj přidat nebo odebrat peníze (aktualizovat) a můžete je zavřít (smazat). Může vám být dovoleno dívat se, vkládat peníze a brát peníze z účtů jiných (autentizace a autorizace).

SDK je naproti tomu jako sada nástrojů. Poskytuje věci, které můžete použít k vytvoření nebo údržbě něčeho. Můžete v něm najít kladivo, některé šroubováky, kleště atd.


Odpověď 3:

To mi připomíná diskusi s mým přítelem z lékárny, který byl otráven diskusí probíhající s přítelem jiného softwarového inženýra.

Museli jsme mu věci vysvětlit, takže jsme vybrali něco, v čem je již pánem.

Diskuse tedy pokračovala takto:

CF (Chemist Friend): Kluci mě dráždí něčím ohledně API a nějaké SDK, co to je?

USA (já a SF (softwarový přítel)): haha, dobře ..

USA: Nechte API vzít jako něco jako položky, které držíte v obchodě. Stejně jako tablety, injekce, sirupy, nápoje a další věci.

A SDK může být kolekce všech výše uvedených položek, což je váš obchod.

Pokud někdo potřebuje injekci, znamená to, že musí použít API.

Pokud někdo potřebuje hodně léků, může se rozhodnout navštívit lékárnu.

CF: Ohh, že? Vždycky jsem toho moc nezískal, ale pomohlo to.