Com puc explicar la diferència entre una API i un SDK a persones que no en saben res?


Resposta 1:

Totes dues estan dirigides a desenvolupadors, però en diferents nivells d’acabat. La diferència té a veure amb el lloc en què se situa com a desenvolupador en relació amb l’usuari final, i si creeu alguna cosa des de zero o consumiu la funcionalitat existent i l’envaseu per a un usuari final. Hi pot haver una àrea grisa entre crear i consumir perquè poden passar tan junts: en alguns casos, la distinció pot convertir-se en un pèl de pelo.

Un SDK és com una caixa de Legos: heu de fer tot el muntatge, però les peces i la documentació us han proporcionat. D’aquesta manera, principalment creeu perquè un SDK és només matèries primeres i documentació.

Una API és una "creació finalitzada" per a un propòsit específic, però sense cap interfície d'usuari. Així, quan treballeu amb una API, esteu consumint aquesta API mentre creeu algun tipus d'interfície d'usuari per a l'usuari final. Així, hi ha una combinació de creació i consum en acostar-se a les API.


Resposta 2:

No estic segur que jo anomenés un SDK com a pastís, ni anomenaria a una API una recepta. Les altres dues respostes són tècniques correctes, però crec que una part del problema és d’audiència. No es tracta de persones tècniques, així que pot ser que una explicació clara no sigui tal.

Crec que una analogia està bé, però ha de demostrar realment la diferència entre les dues coses, i, com dius, una combinació de pastissos i una recepta no ho proporcionen. El meu exemple utilitza dues coses no relacionades, en lloc de relacionades, i simplifica les coses, però crec que pot ajudar.

La meva simplificació per a una API és mirar específicament a una API CRUD. Com a tal, es podria considerar similar a un banc. Podeu obrir un compte per contenir els vostres diners (crear), podeu comprovar el saldo del vostre compte (llegir), podeu afegir o treure diners d’ell (actualitzar) i el podeu tancar (suprimir). Es pot tenir la possibilitat de mirar, dipositar diners i treure diners dels comptes d'altres persones (autenticació i autorització).

D'altra banda, un SDK és com un conjunt d'eines. Proporciona coses que podeu utilitzar per construir o mantenir alguna cosa. Hi podreu trobar un martell, alguns tornavisos, alicates, etc.


Resposta 3:

Això em recorda a una discussió amb el meu amic químic, que es molestava amb la discussió que va tenir lloc amb un altre amic enginyer de programari.

Li vam haver d’explicar les coses, així que vam triar alguna cosa en què ja és mestre.

Així que la discussió va anar així:

CF (Chemist Friend): Nois que em irriten alguna cosa sobre API i algun SDK, què són?

EUA (jo i SF (programari amic)): haha, bé ..

EUA: Permet tenir l’API com una cosa semblant als elements que guardeu a la vostra botiga. Com a comprimits, injecció, xarop, begudes i altres coses.

I el SDK pot ser un recull de tots aquests articles anteriors, que és la vostra botiga.

Si algú necessita una injecció, vol dir que necessita utilitzar una API.

Si algú necessita molts medicaments, pot optar per visitar una botiga de químics.

CF: Ah, no? Però sempre no vaig obtenir molt, però això va ajudar.