Kas yra SDK? Programinės įrangos kūrimo rinkiniai paprastai paaiškinti
SDK (programinės įrangos kūrimo rinkinys, angl. software development kit) yra paruoštas įrankių rinkinys, kurį bendrovė suteikia kūrėjams, kad jie galėtų naudotis jos paslauga ar platforma nekurdami visko nuo nulio. Paprastai jį sudaro konkrečiai programavimo kalbai skirta kodo biblioteka, dokumentacija ir pavyzdžiai, kartais – ir papildomi įrankiai, pavyzdžiui testavimo priemonės. Kai jūsų programa „naudoja Stripe SDK“, tai reiškia, kad jūsų kodas kviečia Stripe paruoštas funkcijas, o ne rašo kiekvieną užklausą į Stripe API rankiniu būdu.
Kodėl SDK svarbūs kuriant su dirbtiniu intelektu
Kai paprašote DI kūrimo įrankio pridėti mokėjimus, DI pokalbius, žemėlapius ar el. paštą, jis paprastai įdiegs to tiekėjo SDK ir parašys keletą eilučių, kurios jį kviečia. Žinoti, kas yra SDK, padeda:
- Suprasti, kas pridedama prie projekto. SDK yra priklausomybė – išorinis kodas, nuo kurio dabar priklauso jūsų programa.
- Pastebėti reikalingą nustatymą. Beveik kiekvienam SDK reikia API rakto, o daugelis turi atskiras „serverio“ ir „naršyklės“ versijas su skirtingomis taisyklėmis, kuriuos raktus galima naudoti saugiai.
- Pasakyti tai, ko reikia. „Naudok oficialų Stripe SDK serveryje“ yra aiškesnis nurodymas nei „pridėk Stripe“.
- Skaityti klaidas. Daug DI sukurtų programų klaidų kyla dėl neteisingai sukonfigūruoto, pasenusio arba ne toje vietoje naudojamo SDK.
Kasdienis palyginimas
Įsivaizduokite, kad norite įsitaisyti lentynas.
- API – tai pastato taisyklės: kur sienos laiko vinis, kokią apkrovą jos atlaiko, kur vamzdžiai. Galėtumėte dirbti tik pagal šias taisykles, viską matuodami ir gręždami patys.
- SDK – tai to paties pastato kūrėjų surinkimo rinkinys: paruošti elementai, tinkami varžtai, laikiklis, pritaikytas tų sienų konstrukcijai, ir instrukcija.
Vis tiek patys nusprendžiate, kur eis lentyna ir kas joje bus. Rinkinys tiesiog išgelbsti nuo pjovimo ir spėliojimo dėl varžtų dydžio – ir mažiau tikėtina, kad baigsis skyle vamzdyje.
SDK, API, biblioteka ir karkasas
Šie terminai persidengia, todėl daugelis į juos painiojasi:
| Terminas | Ką reiškia | Pavyzdys |
|---|---|---|
| API | Taisyklės, kaip kalbėtis su paslauga: kokias užklausas ji priima ir ką grąžina | Stripe REST API adresu api.stripe.com |
| SDK | Tiekėjo įrankių rinkinys jo API ar platformai naudoti iš konkrečios kalbos, su dokumentacija ir įrankiais | Oficiali Stripe Node.js biblioteka |
| Biblioteka | Bet koks pakartotinai naudojamas kodas, pridėtas prie projekto | Datos formatavimo paketas |
| Karkasas | Didesnė struktūra, kurioje kuriama visa programa | React, Next.js, Django |
SDK paprastai apima biblioteką, o ta biblioteka paprastai kviečia API. Web paslaugoms terminai „SDK“ ir „kliento biblioteka“ dažnai vartojami pakaitomis.
Kai kurie SDK visai nesusiję su web paslaugomis. Apple ir Google skelbia SDK iOS ir Android programoms kurti, kuriuose yra kompiliatoriai, simuliatoriai ir platformos kodas. Idėja ta pati: viskas, ko reikia kuriant jų platformai, viename rinkinyje.
Ką SDK daro už jus
Ta pati užduotis – sukurti klientą mokėjimų tiekėjui – atliekama dviem būdais.
Be SDK jūsų kodas pats turi sudaryti HTTP užklausą: nustatyti URL, įdėti slaptą raktą tinkamoje antraštėje, suformatuoti duomenis taip, kaip tikisi API, išsiųsti, patikrinti būsenos kodą, išanalizuoti atsakymą ir bandyti dar kartą, jei tinklas trumpam sutrinka.
Su SDK tai beveik viena eilutė:
const customer = await stripe.customers.create({ email: "lena@example.com" });
Už tos eilutės SDK tvarko:
- Autentifikaciją – teisingai pridedant jūsų raktą prie kiekvienos užklausos
- Duomenų formatavimą – paverčiant jūsų duomenis į tai, ko tikisi API, o atsakymą – į objektus
- Klaidas – paverčiant būsenos kodus į aiškius klaidų tipus, kuriuos jūsų kodas gali pagauti
- Pakartotinius bandymus – saugiai bandant dar kartą, kai užklausa nepavyksta dėl laikinų priežasčių (daugelis oficialių SDK taip daro)
- Tipus – TypeScript kalboje pasakant redaktoriui, kokie laukai egzistuoja, kad klaidos paaiškėtų dar prieš paleidžiant kodą
Darbinis pavyzdys: DI atsakymai palaikymo programoje
Jūs prašote DI kūrimo įrankio: „Kai klientas pateikia palaikymo užklausą, sugeneruok siūlomą atsakymą naudodamas DI modelį.“
- DI įdiegia modelio tiekėjo oficialų SDK kaip paketą jūsų projekte (JavaScript projektams – iš npm registro).
- Pridedate tiekėjo API raktą kaip projekto paslaptį. SDK jį nuskaito iš aplinkos kintamojo serveryje.
- DI parašo serverio maršrutą, kuris kviečia SDK su užklausos tekstu ir trumpa instrukcija, bei išsaugo siūlomą atsakymą duomenų bazėje.
- Naršyklė niekada nemato rakto; ji kviečia tik jūsų pačių serverio maršrutą.
Jei tiekėjas vėliau pakeičia savo API, jis paprastai išleidžia naują SDK versiją. Paketo atnaujinimas – ir patikrinimas, ar išleidimo pastabose nėra nesuderinamų pakeitimų – dažnai yra viskas, ko reikia.
Pagrindinės sąvokos
| Terminas | Reikšmė |
|---|---|
| Priklausomybė | Išorinis kodas, nuo kurio priklauso projektas. SDK yra viena jų. |
| Paketas / paketų tvarkyklė | Atsisiunčiamas kodo rinkinys ir įrankis, kuris jį įdiegia (npm JavaScript, pip Python). |
| Kliento biblioteka | Kodas, palengvinantis tam tikros API iškvietimą. Dažnai tai reiškia „SDK“ web paslaugoms. |
| Serverio pusės SDK | Veikia jūsų serveryje ir gali saugiai naudoti slaptus raktus. |
| Kliento / naršyklės SDK | Veikia lankytojo naršyklėje. Jam duodami tik vieši arba „publishable“ raktai. |
| Versija | Kiekvienas SDK leidimas turi numerį (pavyzdžiui, 4.2.0). Dideli šuoliai dažnai reiškia nesuderinamus pakeitimus. |
| Nesuderinamas pakeitimas | Atnaujinimas, dėl kurio reikia keisti kodą. |
| Pakeitimų žurnalas / išleidimo pastabos | Tiekėjo sąrašas, ką pakeitė kiekviena versija. |
Dažnos klaidingos nuomonės
- „SDK ir API yra tas pats.“ API yra paslaugos sąsaja; SDK – patogumo sluoksnis virš jos. Daugumą web API galima kviesti ir be SDK – tik tai reikalauja daugiau darbo.
- „Jei SDK įdiegtas, integracija baigta.“ Vis dar reikia paskyros pas tiekėją, teisingų raktų ir kodo, kuris tvarko tai, kas nutinka, kai kas nors nepavyksta.
- „Bet koks paketas su teisingu pavadinimu yra oficialus.“ Puolėjai kartais publikuoja panašius paketus. Tikslų paketo pavadinimą patikrinkite tiekėjo dokumentacijoje.
- „Naršyklės SDK gali naudoti mano slaptą raktą.“ Niekada. Viskas naršyklės kode matoma lankytojams. Slapti raktai priklauso tik serverio kodui – žr. kaip saugoti API raktus.
- „SDK niekada nereikia atnaujinti.“ Senos versijos nebegauna pataisymų ir galiausiai nustoja veikti, kai tiekėjai nutraukia senas API versijas.
Ko klausti savo DI kūrimo įrankio
- „Naudok oficialų tiekėjo SDK, ne trečiosios šalies apvalkalą. Pasakyk tikslų paketo pavadinimą ir įdiegtą versiją.“
- „Naudok SDK tik serveryje ir nuskaityk raktą iš aplinkos kintamojo.“
- „Kurios šio SDK dalys veikia naršyklėje ir kokius raktus jos naudoja?“
- „Kas nutinka, jei SDK iškvietimas nepavyksta arba baigiasi laikas? Parodyk vartotojui aiškų pranešimą ir įrašyk klaidą.“
- „Išvardyk kiekvieną SDK ir paketą, nuo kurio priklauso ši programa, ir kam kiekvienas skirtas.“
- „Patikrink, ar kuris nors iš mūsų SDK pasenęs arba turi žinomų saugumo problemų.“
SDK Mythex platformoje
Mythex agentas gali įdiegti paketus jūsų projekto smėlio dėžėje naudodamas įprastą savo technologijų paketų tvarkyklę, įskaitant tiekėjų SDK – nurodykite paketą ir funkciją, kuriai jis reikalingas. Žr. npm paketų naudojimas. Mythex nesiūlo paruoštų integracijų katalogo jūsų programai: paslaptį su tiekėjo raktu saugote kaip projekto paslaptį ir prašote agento kviesti paslaugą iš serverio pusės, kaip aprašyta Integruoti bet kokį API.
Apie sluoksnį po SDK skaitykite kas yra API. Dvi dažnas SDK pagrindu veikiančias funkcijas aprašo kaip pridėti mokėjimus į programą ir kaip naudoti LLM API.
Klausimai
Kas yra SDK paprastais žodžiais?
SDK (programinės įrangos kūrimo rinkinys) yra paruoštų kodo, dokumentacijos ir įrankių rinkinys, kurį bendrovė pateikia, kad kūrėjai lengvai galėtų naudotis jos paslauga ar platforma. Vietoj kiekvienos užklausos API rankiniu būdu rašymo kviečiate paprastas funkcijas, kurias SDK jau turi.
Koks skirtumas tarp SDK ir API?
API yra taisyklių rinkinys bendravimui su paslauga – kokias užklausas ji priima ir kokius atsakymus grąžina. SDK yra įrankių rinkinys, pastatytas ant to API, paprastai vienai programavimo kalbai, kuris tas užklausas siunčia už jus ir tvarko tokias detales kaip autentifikacija, pakartotiniai bandymai ir duomenų formatai.
Ar SDK nemokami?
Dauguma web paslaugų SDK nemokamai atsisiunčiami ir yra atviro kodo, tačiau paslauga, prie kurios jungiamasi, gali imti mokestį už naudojimą. Stripe ar OpenAI SDK naudojimas pats savaime nekainuoja; mokamas yra paslaugų tiekėjo apdorojimas – mokėjimai ar DI užklausos, kurias jis siunčia.
Ar SDK saugu naudoti?
Oficialūs tiekėjo SDK paprastai yra saugiausias būdas kviesti jo paslaugą, nes jie prižiūrimi ir tvarko saugumo detales. Įdiekite juos iš oficialaus paketų registro, laikykite atnaujintus ir būkite atsargūs su neoficialiais paketais, turinčiais panašius pavadinimus.