Cum explic diferența dintre o API și un SDK persoanelor care nu știu nimic despre ele?


Răspunsul 1:

Ambele se adresează dezvoltatorilor, dar la diferite niveluri de finisaj. Diferența are legătură cu locul în care stai ca dezvoltator în raport cu utilizatorul final și dacă creezi ceva de la zero sau consumi funcționalitatea existentă și o împachetezi pentru un utilizator final. Poate exista o zonă cenușie între creare și consum, deoarece acestea se pot întâmpla atât de aproape - distincția se poate transforma în îmbrăcarea părului în unele cazuri.

Un SDK este ca o cutie de Legos - trebuie să faceți tot ansamblul, dar piesele și documentația au fost stabilite pentru dvs. În acest fel, creați în principal, deoarece un SDK este în principal doar materii prime și documentare.

O API este o „creație finalizată” pentru un scop specific, dar fără interfață de utilizator. Deci, atunci când lucrați cu o API, consumați acea API în timp ce creați un fel de interfață de utilizator pentru utilizatorul final. Astfel, există un amestec de creație și consum atunci când abordați API-urile.


Răspunsul 2:

Nu sunt sigur că aș numi un SDK un mix de tort și nici nu aș numi API o rețetă. Celelalte două răspunsuri sunt corecte din punct de vedere tehnic, dar cred că o parte a problemei este una de audiență. Aceștia nu sunt oameni tehnici, deci ceea ce pare o explicație clară poate să nu fie așa.

Cred că o analogie este în regulă, dar trebuie să arătăm cu adevărat diferența dintre cele două lucruri și, după cum spuneți, un mix și o rețetă de tort nu oferă chiar asta. Exemplul meu folosește două lucruri fără legătură, mai degrabă decât cele conexe și simplifică lucrurile, dar cred că ar putea ajuta.

Supraimplicarea mea pentru o API este să mă uit în mod special la o API CRUD. Ca atare, ar putea fi considerat similar cu o bancă. Puteți deschide un cont pentru a deține banii (crea), puteți verifica soldul contului (citiți), puteți adăuga sau elimina bani din acesta (actualizați) și îl puteți închide (șterge). S-ar putea să vi se permită să priviți, să depuneți bani și să luați bani din conturile aparținând altor persoane (autentificare și autorizare).

Un SDK, pe de altă parte, este ca un set de instrumente. Oferă lucruri pe care le puteți folosi pentru a construi sau întreține ceva. S-ar putea să găsiți un ciocan, niște șurubelnițe, clește etc.


Răspunsul 3:

Acest lucru îmi amintește de o discuție cu prietenul meu chimist, care a fost enervat de discuția care a avut loc cu un alt prieten de la inginer software.

A trebuit să-i explicăm lucrurile, așa că am ales ceva în care el este deja stăpân.

Deci, discuția a decurs astfel:

CF (Chemist Friend): Băieți că mă iritați cu ceva despre API și ceva SDK, care sunt acestea?

SUA (eu și SF (prieten software)): haha, bine ..

SUA: Lăsați să luați API-ul ca pe ceva asemănător cu elementele pe care le dețineți în magazin. Cum ar fi tablete, injecție, sirop, băuturi și alte lucruri.

Și SDK poate fi o colecție de toate aceste articole de mai sus, care este magazinul tău.

Dacă cineva are nevoie de injecție, asta înseamnă că trebuie să utilizeze o API.

Dacă cineva are nevoie de multe medicamente, poate opta pentru a vizita un magazin de chimiști.

CF: Oh, nu? Întotdeauna, nu am primit prea multe, dar acest lucru a ajutat.