Hvordan forklarer jeg forskellen mellem en API og en SDK til folk, der ikke ved noget om dem?


Svar 1:

Begge er rettet mod udviklere, men på forskellige niveauer af finish. Forskellen har at gøre med hvor du sidder som udvikler i forhold til slutbrugeren, og om du opretter noget fra bunden eller spiser eksisterende funktionalitet og pakker det til en slutbruger. Der kan være et gråt område mellem at skabe og forbruge, fordi de kan ske så tæt sammen - sondringen kan i nogle tilfælde henvende sig til hårsplitting.

En SDK er som en kasse med Legos - du skal udføre al samlingen, men brikkerne og dokumentationen er lagt ud til dig. På denne måde opretter du hovedsageligt, fordi en SDK hovedsagelig kun er råvarer og dokumentation.

En API er en "færdig oprettelse" til et specifikt formål, men uden brugergrænseflade. Så når du arbejder med en API, forbruger du denne API, mens du opretter en slags brugergrænseflade til slutbrugeren. Der er således en blanding af oprettelse og forbrug, når man nærmer sig API'er.


Svar 2:

Jeg er ikke sikker på, at jeg ville kalde en SDK en kageblanding, og jeg vil heller ikke kalde en API en opskrift. De to andre svar er teknisk korrekte, men jeg tror, ​​at en del af problemet her er et publikum. Dette er ikke tekniske mennesker, så hvad der synes som en klar forklaring er måske ikke sådan.

Jeg synes, en analogi er fin, men den skal virkelig vise forskellen mellem de to ting, og som du siger, en kageblanding og en opskrift leverer ikke rigtig det. Mit eksempel bruger to ikke-relaterede ting snarere end beslægtede ting og forenkler tingene, men jeg tror, ​​det kan hjælpe.

Min overforenkling til en API er at se specifikt på en CRUD API. Som sådan kan det betragtes som en bank. Du kan åbne en konto for at holde dine penge (oprette), du kan kontrollere din kontosaldo (læse), du kan tilføje eller fjerne penge fra dem (opdatere), og du kan lukke dem (slette). Du har muligvis lov til at se på, deponere penge og tage penge fra konti, der tilhører andre (godkendelse og autorisation).

En SDK er på den anden side ligesom et værktøjssæt. Det giver ting, som du kan bruge til at opbygge eller vedligeholde noget. Du kan finde en hammer, nogle skruetrækkere, tang osv. I den.


Svar 3:

Dette minder mig om en diskussion med min kemiker-ven, som blev irriteret over diskussionen, der foregik med en anden softwareingeniør-ven.

Vi måtte forklare tingene, så vi valgte noget, hvor han allerede er en mester.

Så diskussionen gik sådan:

CF (kemiker-ven): fyre, du irriterer mig over noget ved API og noget SDK, hvad er der?

USA (mig og SF (softwarevenn)): haha, okay ..

USA: Lad API tage noget som de ting, du opbevarer i din butik. Ligesom tabletter, injektion, sirup, drikkevarer og andre ting.

Og SDK kan være en samling af alle disse ovenstående varer, som er din butik.

Hvis nogen har brug for injektion, betyder det, at han skal bruge en API.

Hvis nogen har brug for masser af medicin, kan de vælge at besøge en apotek.

CF: Åh, er det?. Altid fik jeg ikke meget, men dette hjalp.