Programos API priežastis. Kas yra API žiniatinklio programose ir kodėl ji reikalinga?

Anksčiau ar vėliau bet kuris programuotojas susiduria su tokia koncepcija kaip API. Tačiau kai toks susitikimas įvyksta, ne visi žino, kas tai yra, kam jis reikalingas ir kaip juo pasinaudoti. Šiame straipsnyje aš užpildysiu šią spragą kai kurių iš jūsų žiniose, taip pat pateiksiu pavyzdį iš savo praktikos.

API (Taikomųjų programų programavimo sąsaja) – tai Taikomųjų programų programavimo sąsaja. Paprasčiau tariant, tai yra įvairių funkcijų, konstantų, klasių ir užklausų formatų rinkinys, kurį galima naudoti kitose programose.

Galima laikyti, kad API- tai objektas, kurio įgyvendinimo mes nežinome, tačiau galime juo naudotis. Pavyzdžiui, kompiuteris yra objektas, kurio įgyvendinimą žino labai mažai žmonių, tačiau beveik visi juo gali atlikti kai kuriuos veiksmus: žiūrėti vaizdo įrašus, naršyti internete, spausdinti tekstą ir pan. Nedaug žmonių žino, kaip visa tai veikia, bet beveik kiekvienas gali tai padaryti.

Pavyzdys API yra Windows API, OpenGL API, Direct3D API ir taip toliau.

Pavyzdžiui, neseniai aš taip pat susidūriau tiesiogiai API. Užsiregistravau adresų sąrašo paslaugai" SmartResponder.ru" ir pradėjo naujienlaiškį, kurį žmonės pradėjo prenumeruoti. Užduotis buvo tokia: per 24 valandas po užsiprenumeravimo asmuo gali įsigyti mano mokamą vaizdo kursą su nuolaida. Kadangi visa informacija apie prenumeratorius yra saugoma serveryje " SmartResponder.ru“, tada įprastą prieigą (pavyzdžiui, per DB) Aš neturėjau prieigos prie šių duomenų, bet buvo būtina juos įgyvendinti. Dėkingai, " SmartResponder.ru"turėti savo API, kurį naudojau.

Juose radau API užklausos formatu, kad gautumėte prenumeratos datą. Toliau per cURL Išsiunčiau atitinkamą užklausą ir gavau reikiamą konkretaus prenumeratos datą elektroninio pašto adresus. Kitas yra standartinis rezultato apdorojimas ir išvedimas.

Privalumai:

Tipai

  • grįžtant. Kai trečiosios šalies programa prašo metodo su nurodytais parametrais, serveris pateikia prašomą informaciją konkrečiu formatu;
  • besikeičiantis. Klientas iškviečia kokią nors serverio funkciją, kuri įveda naują informaciją arba pakeičia tam tikrus jos nustatymus.

„Yandex.Direct“ API

API yra veiksminga svetainių reklamai.

  1. Remdamiesi juo, kūrėjai gali kurti programas, kurios tiesiogiai sąveikauja su paieškos sistemos paslauga. Tokios programos leis reklamuotojams lanksčiai valdyti didelės apimties reklamą, gauti statistines ataskaitas apie kiekvieną iš jų ir tiksliai prognozuoti biudžetus.
  2. Naudodamiesi tiesiogine API, reklamos agentūros gali peržiūrėti visą savo klientų sąrašą, o klientai – savo atstovus.
  3. Jei tam tikros frazės, naudojamos paieškos sistemoms optimizuoti, suteikia mažą PR kontekstinėje reklamoje, jų rodymas gali būti automatiškai išjungtas. Teminėse platformose galite nustatyti įkainius per API, kai kurie donorai gali būti pašalinti.
  4. „Yandex.Direct“ API turi SOAP sąsają, tai yra, ji suteikia platų programavimo kalbų pasirinkimą programoms kurti. Šį protokolą palaiko tokios kalbos kaip Perl, Java, Python ir kt. Duomenų mainai taip pat gali būti atliekami JSON formatu.

Pagal Vikipedijos apibrėžimą API yra paruoštų klasių, procedūrų, funkcijų, struktūrų ir konstantų rinkinys, kurį teikia programa (biblioteka, paslauga), skirta naudoti išoriniuose programinės įrangos produktuose. Naudoja programuotojai rašydami visų rūšių programas.

Tačiau kadangi didžioji Vikipedijos dalis daugeliui žmonių nesuprantama, pabandysiu neprofesionaliais žodžiais paaiškinti, kas yra API ir kam jos paprastai skirtos ir kaip naudojamos.

API yra visiškai skirtingos, bet kaip pavyzdį pasirinkau situaciją, kai turime parduotuvių tinklą ir tik vieną bendrą duomenų bazę. Įsivaizduokite, kad turite partnerių programą. Partnerių programa veikia tokiu principu: asmuo užsiregistruoja partnerių programoje ir gauna parduotuvės variklį. Tada jis gali įdiegti šią parduotuvę savo priegloboje ir pradėti dirbti. Tačiau visi šios parduotuvės duomenys yra paimti iš mūsų duomenų bazės, tai yra, kiekvienam partneriui turime suteikti prieigą prie mūsų brangios duomenų bazės. Ar galite įsivaizduoti, kaip tai pavojinga? Juk turime atverti prieigą prie duomenų bazės iš išorės, kad su ja galėtų dirbti visos partnerių parduotuvės. Kas nutiks, jei jūsų prieigos duomenys pateks į nusikaltėlių rankas?

Čia mums padės API. Užuot suteikę prieigą prie duomenų bazės, mes tiesiog sukursime API, per kurią partnerių parduotuvės gaus informaciją. Tokiu būdu su duomenų baze veiks tik mūsų API scenarijus, o parduotuvės dirbs su šiuo scenarijumi.

Kaip tai veikia?
Pavyzdžiui, parduotuvė siunčia užklausą į mūsų API
http://ourapi.com/get_books?limit=20
ir mūsų API supranta, kad jai reikia pateikti 20 egzempliorių knygų sąrašą, nes perdavėme ribinį parametrą, lygų 20. Mūsų scenarijus (API) pateikia užklausą duomenų bazei, gauna knygų sąrašą ir grąžina jas į parduotuvę (iš tikrųjų ji tiesiog rodo ) konkrečiu formatu. Formatas, kuriuo API pateikia informaciją, gali būti visiškai bet koks, svarbiausia, kad mūsų parduotuvės tai suprastų. Tai gali būti JSON, nuoseklus masyvas arba XML. Tai nebėra svarbu, svarbiausia, kad suprastumėte principą.

Jūs pats nustatote komandų rinkinį, kurį API supranta. Pavyzdžiui, mūsų atveju tai gali būti tokios komandos kaip knygų sąrašo gavimas, kategorijų sąrašo gavimas, populiarių knygų gavimas, naujų knygų gavimas ir kt. Tokiu būdu, net jei užpuolikas gauna galimybę pasiekti mūsų API, viskas, ką jis gali padaryti, yra gauti knygų sąrašą, ir tai nekelia jokios grėsmės mūsų duomenų bazei.

Tikiuosi, kad galėjau paaiškinti, kas yra API paprastu pavyzdžiu. Jei turite klausimų, užduokite juos komentaruose arba forume ir mes mielai padėsime juos išspręsti.

Beveik visos operacinės sistemos (UNIX, Windows, Mac OS ir kt.) turi API, leidžiančią programuotojams kurti programas tai operacinei sistemai. Pagrindinė operacinių sistemų API yra sistemos iškvietimų rinkinys.

3 apibrėžimas: sistemos skambutis- taikomoji programa pasiekia operacinės sistemos branduolį, kad atliktų operaciją.

Šiuolaikinės operacinės sistemos numato laiko paskirstymą tarp vykdomų skaičiavimo procesų (multitasking) ir galių atskyrimą, o tai neleidžia vykdomosioms programoms pasiekti kitų programų ir techninės įrangos duomenų. OS branduolys veikia privilegijuoto procesoriaus režimu. Norėdami atlikti tarpprocesinę operaciją arba operaciją, kuriai reikalinga prieiga prie aparatinės įrangos, programa iškviečia branduolį, kuris, priklausomai nuo iškvietimo proceso autoriteto, vykdo arba užkerta kelią tokio iškvietimo vykdymui.

Programuotojo požiūriu, sistemos iškvietimas paprastai atrodo kaip iškvietimas į paprogramę arba funkciją iš sistemos bibliotekos. Tačiau sistemos iškvietimas, kaip ypatingas tokios funkcijos ar paprogramės iškvietimo atvejis, turėtų būti atskirtas nuo bendresnio iškvietimo į sistemos biblioteką, nes pastaroji gali nereikalauti privilegijuotų operacijų vykdymo.

Programinės įrangos pramonėje svarbios bendros, standartinės API standartinėms funkcijoms, nes jos užtikrina, kad visos programos, naudojantys bendrą API, veiks vienodai gerai arba bent jau įprastai. GUI API atveju tai reiškia, kad programos turės panašią vartotojo sąsają, todėl bus lengviau išmokti naujų programinės įrangos produktų.

Kita vertus, skirtingų operacinių sistemų API skirtumai labai apsunkina programų perkėlimą tarp platformų. Yra įvairių būdų, kaip įveikti šį sudėtingumą – rašyti „tarpines“ API (GUI API WxWidgets, Qt, GTK ir kt.), rašyti bibliotekas, kurios susieja sistemos iškvietimus iš vienos OS su sistemos skambučiais iš kitos OS (vykdymo laikas, pvz., Wine , cygwin ir kt.), įvedant programavimo kalbų kodavimo standartus (pavyzdžiui, C standarto biblioteką), rašant interpretuojamas kalbas, įdiegtas įvairiose platformose (sh, python, perl, php, tcl, Java ir kt.) .

Taip pat reikėtų pažymėti, kad programuotojas dažnai turi keletą skirtingų API, kad pasiektų tą patį rezultatą. Be to, kiekviena API paprastai įgyvendinama naudojant žemesnio abstrakcijos lygio API programinės įrangos komponentus.


Pavyzdžiui, norėdami naršyklėje matyti eilutę „Sveikas, pasauli!“, tereikia sukurti HTML dokumentą su minimaliu pavadinimu ir paprastu tekstu, kuriame būtų ši eilutė. Kai naršyklė atidaro šį dokumentą, naršyklės programa perduos failo pavadinimą (arba jau atidarytą failo aprašą) bibliotekai, kuri apdoroja HTML dokumentus, o ši, savo ruožtu, naudodama operacinės sistemos API, perskaitys šį failą ir supras jo struktūrą. , tada nuosekliai skambinkite per standartinių grafinių primityvų API bibliotekas tokioms operacijoms kaip „išvalyti langą“, „parašyti pasirinktu šriftu „Labas, pasauli!“. Atlikdama šias operacijas, grafikos primityvų biblioteka susisieks su lango sąsajos biblioteka su atitinkamomis užklausomis, o ši biblioteka susisieks su operacinės sistemos API, kad įrašytų duomenis į vaizdo plokštės buferį.

Be to, beveik kiekviename lygyje iš tikrųjų yra keletas galimų alternatyvių API. Pavyzdžiui, šaltinio dokumentą galėtume rašyti ne HTML, o LaTeX, o rodymui naudoti bet kurią naršyklę. Skirtingos naršyklės paprastai naudoja skirtingas HTML bibliotekas, be to, visa tai (paprastai kalbant) gali būti sudaryta naudojant skirtingas primityvias bibliotekas ir skirtingose ​​operacinėse sistemose.

Taigi pagrindiniai esamų daugiapakopių API sistemų iššūkiai yra šie:

· Sunkumai perkeliant programos kodą iš vienos API sistemos į kitą (pavyzdžiui, keičiant OS);

· Funkcionalumo praradimas pereinant iš žemesnio lygio į aukštesnį. Grubiai tariant, kiekvienas API „sluoksnis“ yra sukurtas tam, kad palengvintų kai kurių standartinių operacijų rinkinio vykdymą. Tačiau tuo pačiu tampa tikrai sunku arba iš esmės neįmanoma atlikti kai kurių kitų operacijų, kurias teikia žemesnio lygio API.

Pastaba. Perkėlimas- programuojant perkėlimas reiškia programos ar jos dalies pritaikymą, kad ji veiktų kitoje aplinkoje, kuri skiriasi nuo aplinkos, kuriai ji buvo iš pradžių parašyta, kiek įmanoma išsaugant jos vartotojo savybes.

Jei dirbate net nuotoliniu būdu netoli interneto svetainių kūrimo pramonės, galite būti 100% tikri, kad išgirsite tas tris liūdnai pagarsėjusias raides: API.

Pokalbiai apie juos yra išsibarstę tarp niekšų ir ekspertų:

„Kodėl turėčiau skambinti API? Ar jis turi numerį?

„Paprastas šios trečiosios šalies API iškvietimas padės jums tai pasiekti.

„Sukursime jums RESTful API; įsitikinkite, kad jūsų naujoji sistema gerai veikia su kitomis paslaugomis.

Nors iš pradžių API gali atrodyti baisu, jos gali tiesiogine prasme pakeisti jūsų, kaip kūrėjo, gyvenimą.

Kam? Na, išmokę tinkamai naudoti API gali supaprastinti, pagreitinti ir sustiprinti kūrimo darbo eigą. API kūrimas arba integravimas suteikia didelės naudos tiek jūsų klientams, tiek jums.

Kaip kūrėjai, dažnai girdite patarimą „neišradinėti dviračio iš naujo“:

pokštas:
išmintingas patarimas: neišradinėk dviračio iš naujo
programuotojas: gerai
daugiau niekada nerašo pasirinkto kodo

Atmetus juokelius, API vaidina svarbų vaidmenį užtikrinant, kad neišradinėtumėte dviračio iš naujo. „Snipcar“ tvirtai tikime, kad API pagrindų supratimas yra pagrindinis šiuolaikinių žiniatinklio kūrėjų įgūdis. Šiame įraše mes padėsime jums tai padaryti. Mes apsvarstysime:

API naudojimo pranašumai Kas iš tikrųjų yra API Kokių tipų API yra Praktiniai API naudojimo pavyzdžiai

Na, ar ne laikas į tai pasinerti?

API pranašumai: kodėl jas naudoti?

Vienas iš pirmųjų, svarbiausių žingsnių mano programuotojo karjeroje buvo teisingas API supratimas.

Aš vis dar juos naudoju kiekvieną dieną.

Prieš įsigilindamas į smulkmenas, pirmiausia leiskite įtikinti jus, kad suprasti API verta jūsų laiko.

Kadangi mokymasis naudoti API labai pagerina kūrimo efektyvumą.

Pirma, tai leidžia naudoti esamą logika arba dalys, kurio nereikia rašyti pačiam. Kai kurių dalykų, kurių jūs tiesiog negalėsite parašyti patys! Todėl norint sutaupyti brangaus laiko, kaip kūrėjui labai svarbu turėti idėją, kaip atrodo API.

Antra, daugelį vystymosi problemų, su kuriomis susidursite, kažkas kitas jau išsprendė anksčiau nei jūs. Kad ir kokia būtų šių esamų sprendimų forma (FaaS, bibliotekos, žiniatinklio paslaugos, SDK, turinio API ir kt.), norint su jais sąveikauti, greičiausiai reikės API.

Taigi, kas yra API?

Na, oficialus, baisus apibrėžimas yra toks:

Kompiuterių programavimo srityje taikomųjų programų programavimo sąsaja (API) yra įprastų apibrėžimų, protokolų ir įrankių rinkinys taikomajai programinei įrangai kurti. Apskritai, tai yra aiškiai apibrėžtų komunikacijos metodų rinkinys tarp skirtingų programinės įrangos komponentų. Gera API palengvina kompiuterinės programos kūrimą, nes pateikia visus elementus, kuriuos programuotojas vėliau surenka.

Sunku, ane? Pažvelkime į akademinę prozą. Štai draugiškesnis namų API apibrėžimas:

Paprasčiau tariant, API deklaruoja sąsają, su kuria jos logika gali sąveikauti nežinant, kas vyksta viduje. Šis apibrėžimas gali būti taikomas bet kuriai kalbai, protokolui ar aplinkai, kurioje esate, jei tik jis yra programos lygiu(daugiau apie tai žemiau).

Norėdami šiek tiek paaiškinti API, išvardinkime, kas jos NĖRA:

    API nebūtinai yra išorinė paslauga. Pavyzdžiui, galite įtraukti bibliotekas tiesiogiai į savo sprendimą ARBA naudoti jas per API.

    API yra daugiau nei tik sąsaja. Tai yra ir specifikacija / formatas, ir įgyvendinimas.

    API nėra GUI (grafinė vartotojo sąsaja). Tai neveikia grafiniu lygiu; jis veikia tik programinės įrangos lygiu, naudojant programavimo kalbą arba ryšio protokolą.

API taip pat nėra žiniatinklio kabliukas. Jei jums sunku suprasti skirtumą tarp šių dviejų, pateikiame žiniatinklio kabliukų įvadą.

Įvairūs API tipai

Visos API nėra lygios.

Nors jie dažniausiai turi tą patį tikslą, vieni jį pasiekia geriau nei kiti. Kadangi tai turėtų būti sklandi įžanga, nesigilinsiu į tai, kuo API yra geresnė už kitas. Tačiau atminkite, kad žmonės turi skirtingą požiūrį į API kūrimą. Jei jus domina ši tema, „Google“ „API dizaino modeliai“ ir „API paradigmos“. Arba tiesiog pradėkite nuo šio puikaus pradinio lygio straipsnio https://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=https://blog.cloudobjects.io/api-design / 2017/04/10/api-design-paradigms/&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhg_fNGoowl7u4xxhz. :)

API paskirtis – palengvinti jūsų, kaip kūrėjo, gyvenimą. Kaip jie tai padaro? Sujungiant funkcijų / funkcijų rinkinį ir pateikiant tas funkcijas per galinius taškus (paprastai URL šablonus, naudojamus sąveikaujant su API). Šie galutiniai taškai yra vienintelis būdas sąveikauti su bet kuria API. Kiekvienas galutinis taškas turės konkretų užklausų ir atsakymų formatą – paprastai šį formatą rasite API dokumentacijoje.

Galiniai taškai gali būti paprastos funkcijos arba sudaryti iš daugelio funkcijų, kurios iškviečia kitas API ir pan. Vienintelis svarbus dalykas yra tai, kad pagrindinė šių funkcijų logika yra visiškai abstrahuota. Norint juos naudoti, nereikia žinoti, kas vyksta jų viduje. Tol, kol naudosite tinkamą formatą, galėsite juos naudoti, o tai yra puikus būdas pasakyti, naudojant jų dalis iš savo programos.

Apibendrinant galima teigti, kad API yra kaip bet kuri sąsaja: šviesos jungiklis įjungs šviesą, nesvarbu, ar žinote, kaip veikia elektros srovės (arba aš taip pat vaikystėje sužinojau, kad reikia sumokėti sąskaitą, kad ji veiktų už elektrą, bet tai jau kita istorija.)

Kaip naudotis API: praktiniai pavyzdžiai

API dokumentacijos skaitymas ir supratimas

Iš dokumentų matote, kad kiekviena objekto funkcija aprašo, koks turi būti įvesties formatas (skaičius, skaičių masyvas ir kt.) ir aprašo išvesties formatą. Tačiau atminkite, kad nieko nepaminėta apie šių funkcijų vykdymo logiką. Pavyzdžiui, jei paleisite kūrėjo konsolę ir Math.sqrt (nevykdydami funkcijos), gausite kažką panašaus į ƒ sqrt() ( ) . Tai yra API dvasia: nesvarbu, ar iškviečiate vieną iš savo operacinės sistemos API, ar žiniatinklio API, šie principai išlieka tie patys.

Pagrindiniai API naudojimo pavyzdžiai

Yra daugybė dalykų, susijusių su populiariais API teikėjais. Pavyzdžiui, „Google“ žemėlapių API dažnai naudojama siekiant pagerinti naudotojo patirtį naudojant duomenis, pagrįstus realaus laiko ekranais ir eismo signalais. „Twitter“ API, dar viena didelė, gali būti naudojama tiksliniams tviteriams filtruoti ir rodyti realiuoju laiku.

Dabar, jei sekate mūsų tinklaraštį, įtariu, kad jus labiau domina žiniatinklio API nei bet kas kitas. Taigi pasinerkime į konkrečius naudojimo atvejus. Atminkite, kad savo pavyzdžiuose naudosime „Postman“. Žinoma, šis „Rest Client“ yra susietas su žiniatinklio aplinka, tačiau tokie įrankiai dažniausiai egzistuoja ir kitose aplinkose. Prieš pradedant žaisti, verta pasidomėti tam tikrai aplinkai skirtais įrankiais; gali sutaupyti daug laiko.

Jei norite mus sekti, turite atsisiųsti „Postman“ klientą https://www.getpostman.com/.

Viešosios API naudojimas duomenims gauti

Pirmasis mūsų pavyzdys bus gana paprastas, bet vis tiek įdomesnis nei matematinis.

Naudosime šunų API! Tai ne tik smagi API, bet ir nereikalauja jokio autentifikavimo. Be to, tai yra HTTP REST API, o tai reiškia, kad tai žiniatinklio API. Kadangi jis yra susietas su šia aplinka, jis reikalauja, kad mes atitiktume kai kurias specifines protokolo savybes: šiuo atveju HTTP veiksmažodžius (GET, PUT, POST, DELETE ir kt.). Mūsų pavyzdyje tai bus paprasta ir naudosime tik veiksmažodį GET. Bet kuriuo atveju API neleidžia palaikyti nieko kito. Dauguma viešųjų API leidžia tik vartoti duomenis, o ne juos skelbti, pvz., GET veiksmažodis.

Paleiskite „Postman“ ir pažiūrėkime, kaip atrodo jos vartotojo sąsaja.

Mano vartotojo sąsaja naudoja tamsią temą, todėl ji gali atrodyti šiek tiek kitaip nei jūsų.

Iš pradžių gali būti daug informacijos, todėl pradėkime nuo VERB ir URL.

Numatytasis veiksmažodis turėtų būti GET, kad galėtumėte palikti jį taip ir įvesti šį URL: https://dog.ceo/api/breeds/list/all

Spustelėkite „Siųsti“ ir viskas! Turėtumėte gauti atsakymą su atitinkamais duomenimis. Voila! Ką tik atlikote savo pirmąjį API skambutį. Dabar šiame pavyzdyje nenaudosime jokių gautų duomenų. Bet jūs turite idėją: galite parodyti savo vartotojui skirtingas šunų veisles ir parodyti tos veislės nuotrauką, jei jis ją spustelėja.

Galite žaisti su skirtingais maršrutais jų dokumentacijoje, kad susipažintumėte su aplinka.

Puikus faktas: šis mažas projektas taip pat yra atvirojo kodo, todėl galite jį patikrinti čia https://github.com/ElliottLandsborough/dog-ceo-api.

Autentifikavimo tvarkymas naudojant privačią API

Čia kodą naudosime tik sąveikaudami su „Snipcart“ API https://docs.snipcart.com/api-reference/introduction. Galite uždaryti paštininką, bet laikykite jį po ranka; Naudinga naudoti tokį įrankį, kai veikia su API.

Tikslas bus sukurti paprastą CLI įrankį, kuris klientams generuotų vienkartines nuolaidas. Šios nuolaidos bus sukurtos naudojant API ir bus taikomos tik jūsų kompiuteryje.

Sukurkite naują šio projekto aplanką, aplanke naudokite npm init ir įkelkite teksto rengyklę. Dabar sukurkite failą index.js, tada atidarykite failą package.json. Jame prie aukščiausio lygio objekto pridėkite šias eilutes:

„bin“: („nuolaidos“: „./index.js“)

Mums taip pat reikės komandos paketo, kad galėtume išanalizuoti kliento įvestį. Taigi, dabartiniame aplanke paleiskite komandą npm install -save. Taip pat naudosime nedidelę biblioteką identifikatoriams kurti; Jį galite įdiegti naudodami npm install -save shortid . Kol mes tai darome, taip pat paleiskite npm install -save request lib, kad galėtume palengvinti HTTP skambučius. Grįžkite į failą index.js ir įklijuokite šį kodą:

#!/usr/bin/env mazgas var program = reikalauti(‘komandas’); var shortid = reikalauti(‘shortid’); var prašymas = reikalauti('užklausa'); function CreateDiscount())( var nuolaida = ( pavadinimas: '20 % OFF', trigeris: 'Kodas', tipas: 'Rate', norma: 20, maxUsages: 1, kodas: shortid.generate() ) request(( url : „http://app.snipcart.com/api/discounts“ , autentifikavimas: ('vartotojas': 'YOUR_API_KEY' ), metodas: "POST", json: tiesa, tekstas: nuolaida ), funkcija (klaida, atsakymas, body )( console.log(body.code); )); programa .arguments(' ') .action(function(number) ( for(var i = parseFloat(number); i > 0; i-)( CreateDiscount( ); ) )).parse(process.argv);

Čia sutelkkime dėmesį į užklausos funkciją. Čia mes atliekame išorinį API iškvietimą į „Snipcar“. Matote, kad metodui perduodame metodą: „POST“. Taip yra todėl, kad norime skelbti duomenis Snipcar API. Nurodžius šį metodą, API tinkamai pateiks veiksmą, kad galėtų nuskaityti užklausos turinį, kuriame yra nuolaidos duomenys.

Įdomi API funkcija, kurios dar nenaudojome, yra autentifikavimas. Visi kiti mūsų pavyzdžiai buvo viešose API: jiems nereikia autentifikavimo. Tačiau realaus pasaulio scenarijuose daugumai naudojamų API greičiausiai reikės tam tikro autentifikavimo, pvz., „Twitter“ API arba „Google Maps“ API. Tai yra standartinis API pasaulio „modelis“. Mūsų klientai nebūtų tokie patenkinti, jei leistume kažkam kitam jų parduotuvėje padaryti nuolaidas. ;)

Autentifikavimo sąvokos gali būti gana sudėtingos; Galite perskaityti šį puikų įrašą https://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=http://blog.restcase.com/restful-api-authentication- pagrindai /&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhjwWO5yc6nayLpXCQkh_X95B0OZMw, kad geriau įsisavintumėte temą.

Savo tikslu perduodame API raktą https://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=https://en.wikipedia.org/wiki/Application_programming_interface_key&xid =17259, 15700019,15700186,15700190,15700248,15700253&usg=ALkJrhhpSWyk-nV9379VcrY3TMcKiAdXlQ tiesiai užklausoje, o serveris atpažįsta! Tada jis gali pateikti tik mūsų paskyrai skirtą užklausą.

Jei norite išbandyti mūsų nedidelę programą, projekto kataloge galite paleisti npm install -g ir tiesiog paleisti nuolaidas x, kad sukurtumėte nuolaidų x skaičių. Galite eiti į savo Snipcart prietaisų skydelį (amžinai nemokamos paskyros bandomuoju režimu) ir įsitikinti, kad nuolaidos buvo sukurtos teisingai. Galite įsivaizduoti, koks tai gali būti galingas: jei turėtumėte sukurti 200 šių nuolaidų, tai užtruktų per daug laiko, kad tai padarytumėte per mūsų vartotojo sąsają. Tačiau kai susipažinsite su API veikimo principu, tai galite padaryti per kelias minutes. Kodas taip pat yra daugkartinis, taigi, jei jums reikia tą patį padaryti per mėnesį, esate pasiruošę!

Jei turite konkrečių API naudojimo atvejų, apie kuriuos norite kalbėti, parašykite juos komentaruose. Mes stengsimės įtraukti juos į savo turinio planą! :)

Paskutinės mintys

Nuoširdžiai tikiuosi, kad ši pamoka padėjo jums geriau suprasti, kas yra API ir kaip galite jas naudoti savo kūrimo darbo eigoje.

Keletas išsinešimų:

  • API pagreitins jūsų greitį ir išplės kūrimo galimybes. Naudoti juos!
  • API nebūtinai yra susietos su žiniatinklio ekosistema; Pamatysite juos visur.
  • Visada atidžiai patikrinkite norimos naudoti API dokumentaciją.
  • Prieš pradėdami koduoti, visada ieškokite esamų įrankių (API ar kitų) savo ekosistemoje.

Dabar paskutinis mūsų pavyzdys nėra paruoštas „gamybai“, tačiau jis suteikia gerą supratimą apie tai, kaip viskas gali atrodyti realiame gyvenime. Yra daug dalykų, kuriuos galėtume patobulinti, pvz., leisti vartotojui pasirinkti nuolaidos tipą ir tt Taip pat galėtume naudoti sugeneruotus kodus, norėdami juos el. paštu siųsti tiesiogiai naudodami tą pačią funkciją, o ne tik juos užregistruoti. Jei turėtume didesnių nuolaidų įrankių poreikių, galėtume patys parašyti API. Iš ten mes netgi galėtume sukurti vartotojo sąsają, kuri sąveikauja su mūsų API, jei norėtume. Bet kokiu atveju, tikiuosi, dabar supratote idėją! :)

Taigi koks kitas žingsnis? Kaip ir beveik viskas kuriama, jums reikia koduoti, koduoti, koduoti ir koduoti dar šiek tiek! Tai supažindins su API valdymu ir integravimu. Po kurio laiko su jais tapsite efektyvesni.

Ir čia prasideda tikrosios linksmybės.