API duomenys. Beselerio platformos API naudojimas ir prisijungimas prie jos

, funkcijos, struktūros ar konstantos), iš kurių viena kompiuterio programa gali bendrauti su kita programa. Paprastai įtraukiama į kai kurių interneto protokolų (pavyzdžiui, RFC), programinės įrangos sistemos (karkaso) arba operacinės sistemos funkcijų iškvietimo standarto aprašą. Dažnai įgyvendinama naudojant atskirą programinės įrangos biblioteką arba operacinės sistemos paslaugą. Naudoja programuotojai rašydami visų rūšių programas.

API kaip programų integravimo priemonė

API apibrėžia programos (modulio, bibliotekos) teikiamas funkcijas, o API leidžia abstrahuotis nuo to, kaip tiksliai ši funkcija įgyvendinama.

Jei programa (modulis, biblioteka) laikoma juodąja dėže, tai API yra „rankenėlių“, kurios yra prieinamos šios dėžutės vartotojui ir kurias jis gali sukti ir traukti, rinkinys.

Programinės įrangos komponentai sąveikauja vienas su kitu per API. Šiuo atveju komponentai dažniausiai sudaro hierarchiją – aukšto lygio komponentai naudoja žemo lygio komponentų API, o jie savo ruožtu naudoja dar žemesnio lygio komponentų API.

Šiuo principu sukurti interneto duomenų perdavimo protokolai. Standartinis krūvas protokoluose (OSI tinklo modelis) yra 7 lygiai (nuo fizinis lygis perduodant bitus į taikomųjų programų protokolus, tokius kaip HTTP ir IMAP). Kiekvienas sluoksnis naudoja ankstesnio („žemesnio“) duomenų perdavimo sluoksnio funkcionalumą ir, savo ruožtu, suteikia reikiamą funkcionalumą kitam („aukštesniam“) lygiui.

Svarbu pažymėti, kad protokolo sąvoka yra artima API sąvokai. Abi yra funkcionalumo abstrakcijos, tik pirmuoju atveju kalbame apie duomenų perdavimą, o antruoju – apie programų sąveiką.

Funkcijų ir klasių bibliotekos API yra aprašas parašų Ir funkcijų semantika.

Funkcijos parašas

Kartais jie skiriasi skambučio parašas Ir įgyvendinimo parašas funkcijas. Iškvietimo parašas paprastai sudaromas iš funkcijos iškvietimo sintaksinės struktūros, atsižvelgiant į pateiktos funkcijos apimties parašą, funkcijos pavadinimą, faktinių argumentų tipų seką iškvietime ir į funkcijos tipą. rezultatas. Įgyvendinimo parašas paprastai apima kai kuriuos elementus iš funkcijos deklaracijos sintaksės struktūros: funkcijos apimties specifikatoriaus, jo pavadinimo ir formalių argumentų tipų sekos.

Pavyzdžiui, C++ programavimo kalba paprasta funkcija Kompiliatorius yra vienareikšmiškai atpažįstamas pagal pavadinimą ir argumentų tipų seką, kuri yra šios kalbos funkcijos parašas. Jei funkcija yra tam tikros klasės metodas, tada klasės pavadinimas taip pat bus įtrauktas į parašą.

Pramonėje programinė įranga Bendros standartinės API, skirtos standartinėms funkcijoms, yra svarbios, nes užtikrina, kad visos programos, naudojančios bendrą API, veiks vienodai gerai arba bent jau įprastai. GUI API atveju tai reiškia, kad programos bus panašios vartotojo sąsaja, kuris palengvina naujų programinės įrangos produktų įsisavinimo procesą.

Kita vertus, skirtingų API skirtumai Operacinės sistemosžymiai apsunkina programų perdavimą tarp platformų. Egzistuoti įvairių metodų Apeiti šį sudėtingumą – rašyti „tarpines“ API (grafinių sąsajų wxWidgets, GTK ir kt. API), rašyti bibliotekas, kurios susieja vienos OS sistemos iškvietimus su kitos OS sistemos iškvietimais (vykdymo laikas, pvz., Wine, cygwin ir kt.), kodavimo standartų įdiegimas programavimo kalbose (pvz. standartinė biblioteka C kalba), rašyti interpretuojamomis kalbomis, įdiegtomis skirtingose ​​platformose (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 API programinės įrangos komponentaižemesnis abstrakcijos lygis.

Pavyzdžiui: norėdami naršyklėje pamatyti eilutę „Sveikas, pasauli! “, jums tereikia sukurti HTML dokumentą su minimaliu pavadinimu ir paprastu turiniu š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 iškvieskite API biblioteką standartinių grafinių primityvių operacijų, tokių kaip „išvalyti langą“, „parašykite pasirinktu šriftu „Labas, pasauli!“. Šių operacijų metu grafikos primityvų biblioteka susisieks su lango sąsajos biblioteka su atitinkamomis užklausomis, o ši biblioteka iškvies 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 panaudoti bet kurią naršyklę. Be to, skirtingos naršyklės naudoja skirtingas HTML bibliotekas, be to, visa tai 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 kodas 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.

Garsiausios API

Operacinės sistemos

Šis trumpas laikotarpis yra gerai žinomas visiems, turintiems bet kokios plėtros patirties. Tačiau ne visi supranta, ką tai tiksliai reiškia ir kodėl to reikia. Programuotojas Petras Gazarovas kalbėjo apie API paprastais žodžiais savo tinklaraštyje.

Santrumpa API reiškia "Application Programming Interface" programinės įrangos sąsaja programos). Dauguma didelės įmonės tam tikrame etape API yra kuriamos klientams arba vidiniam naudojimui. Norėdami suprasti, kaip ir kaip API naudojamos kuriant ir versle, pirmiausia turite suprasti, kaip veikia pasaulinis internetas.

World Wide Web ir nuotoliniai serveriai

WWW gali būti laikomas didžiuliu tarpusavyje sujungtų serverių tinklu, kuriame saugomas kiekvienas puslapis. Įprastą nešiojamąjį kompiuterį galima paversti serveriu, galinčiu aptarnauti visą svetainę tinkle, ir vietiniai serveriai kūrėjai jį naudoja kurdami svetaines prieš pateikdami jas viešai.

Įvedus į naršyklės adreso juostą www.facebook.com Atitinkama užklausa siunčiama į nuotolinį Facebook serverį. Kai naršyklė gauna atsakymą, ji interpretuoja kodą ir parodo puslapį.

Kiekvieną kartą, kai vartotojas apsilanko žiniatinklio puslapyje, jis sąveikauja su API nuotolinis serveris. API yra sudedamoji serverio dalis, kuri gauna užklausas ir siunčia atsakymus.

API kaip būdas aptarnauti klientus

Daugelis įmonių siūlo API kaip paruoštą produktą. Pavyzdžiui, „Weather Underground“ parduoda prieigą prie savo oro duomenų API.

Naudojimo scenarijus: Mažos įmonės svetainėje yra klientų susitikimų sudarymo forma. Bendrovė nori į jį integruoti „Google“ kalendorių, kad klientai galėtų automatiškai sukurti įvykį ir įvesti informaciją apie būsimą susitikimą.

API programa: Siekiama, kad svetainės serveris tiesiogiai susisiektų su Google serveriu su prašymu sukurti įvykį su nurodyta informacija, gautų Google atsakymą, jį apdorotų ir naršyklei išsiųstų atitinkamą informaciją, pavyzdžiui, patvirtinimo pranešimą vartotojui. .

Arba naršyklė gali pateikti užklausą „Google“ serverio API nesinaudodama įmonės serveriu.

Nei API Google kalendorius skiriasi nuo bet kurio kito nuotolinio tinklo serverio API?

Techniškai skiriasi prašymo ir atsakymo formatas. Kad sugeneruotų visą tinklalapį, naršyklė tikisi atsakymo ta kalba HTML žymėjimas, o „Google“ kalendoriaus API tiesiog pateiks duomenis tokiu formatu kaip JSON.

Jei API užklausą pateikia įmonės svetainės serveris, tai klientas (kaip ir naršyklė yra klientas, kai vartotojas atidaro svetainę).

API dėka vartotojas turi galimybę atlikti veiksmą neišeinant iš įmonės svetainės.

Dauguma šiuolaikinių svetainių naudoja bent kelias trečiųjų šalių API. Daugelis užduočių jau turi paruoštus sprendimus, kuriuos siūlo trečiųjų šalių kūrėjai, nesvarbu, ar tai būtų biblioteka, ar paslauga. Dažnai lengviau ir patikimiau kreiptis į paruoštą sprendimą.

Daugelis kūrėjų platina programą keliems serveriams, kurie sąveikauja tarpusavyje naudodami API. Serveriai, kurie atlieka pagrindinio taikomųjų programų serverio palaikymo funkciją, vadinami mikropaslaugomis.

Taigi, kai įmonė siūlo savo vartotojams API, tai paprasčiausiai reiškia, kad ji sukūrė specialių URL, kurie kaip atsaką pateikia tik duomenis, seriją.

Tokios užklausos dažnai gali būti siunčiamos per naršyklę. Kadangi HTTP duomenų perdavimas vyksta teksto forma, naršyklė visada galės rodyti atsakymą. Pavyzdžiui, per naršyklę galite tiesiogiai pasiekti „GitHub“ API (https://api.github.com/users/petrgazarov) be prieigos prieigos rakto ir gauti šį atsakymą JSON formatu:

Naršyklė puikiai rodo JSON atsakymą, kurį galima įterpti į kodą. Iš tokio teksto pakankamai lengva išgauti duomenis, kad galėtumėte juos naudoti savo nuožiūra.

Dar keli API pavyzdžiai

Žodis „taikymas“ gali būti vartojamas skirtingos reikšmės. API kontekste tai reiškia:

  • programinė įranga, turinti tam tikrą funkciją,
  • visas serveris, visa programa arba tik atskira programos dalis.

Bet kuri programinė įranga, kurią galima aiškiai atskirti nuo aplinkos, gali pakeisti raidę „A“ anglų kalbos santrumpoje, taip pat gali turėti tam tikrą API. Pavyzdžiui, kai kūrėjas į kodą įdiegia trečiosios šalies biblioteką, jis tampa visos programos dalimi. Kaip atskira programinės įrangos dalis, biblioteka turės tam tikrą API, leidžiančią sąveikauti su likusiu programos kodu.

Objektiniame projekte kodas vaizduojamas kaip objektų rinkinys. Programoje gali būti šimtai tokių objektų, kurie sąveikauja tarpusavyje. Kiekvienas iš jų turi savo API – rinkinį viešas sąveikos su kitais programos objektais savybės ir metodai. Objektai taip pat gali turėti privatus, vidinė logika, kuri yra paslėpta nuo aplinkos ir nėra API.

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. Ir šiame straipsnyje aš užpildysiu šią spragą kai kurių iš jūsų žiniose ir pateiksiu pavyzdį iš savo praktikos.

API (Taikomųjų programų programavimo sąsaja) – tai Taikomųjų programų programavimo sąsaja. Tiksliau paprasta kalba, tai yra įvairių funkcijų, konstantų, klasių, užklausų formatų rinkinys, kurį galima naudoti kitose programose.

Galima laikyti, kad API– tai tam tikras objektas, kurio įgyvendinimo 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 žmogus 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.

API apibrėžia programos (modulio, bibliotekos) teikiamas funkcijas, o API leidžia abstrahuotis nuo to, kaip tiksliai ši funkcija įgyvendinama.

Jei programa (modulis, biblioteka) laikoma juodąja dėže, tai API yra „rankenėlių“, kurios yra prieinamos šios dėžutės vartotojui, rinkinys, kurį jis gali sukti ir traukti.

Programinės įrangos komponentai sąveikauja vienas su kitu per API. Šiuo atveju komponentai dažniausiai sudaro hierarchiją – aukšto lygio komponentai naudoja žemo lygio komponentų API, o jie savo ruožtu naudoja dar žemesnio lygio komponentų API.

Šiuo principu sukurti duomenų perdavimo protokolai. Standartinis interneto protokolas (OSI tinklo modelis) susideda iš 7 sluoksnių (nuo fizinio bitų paketų perdavimo sluoksnio iki taikomųjų protokolų, pvz., HTTP ir IMAP protokolų, sluoksnio). Kiekvienas sluoksnis naudoja ankstesnio duomenų perdavimo sluoksnio funkcijas ir, savo ruožtu, suteikia reikiamą funkcionalumą kitam sluoksniui.

Svarbu pažymėti, kad protokolo sąvoka yra artima API sąvokai. Abi yra funkcionalumo abstrakcijos, tik pirmuoju atveju kalbame apie duomenų perdavimą, o antruoju – apie kompiuterių programų kūrimą.

Funkcijų ir klasių bibliotekos API yra aprašas parašų Ir funkcijų semantika.

Taikomųjų programų sąsaja (API) yra programinės įrangos sąsaja, skirta sąveikai tarp sistemų, leidžianti:

  • Gaukite prieigą prie įmonės verslo paslaugų
  • Keiskitės informacija tarp sistemų ir programų
  • Supaprastinkite įmonių, partnerių, kūrėjų ir klientų bendravimą

Atidaryti API strategiją

API strategija apima:

  • Verslo produktų kūrimas remiantis esamomis API
  • Vidinių paslaugų teikimas kūrėjams
  • API pajamų gavimo modeliai, skirti kurti kelių kanalų sąveiką ir padidinti pelną

Atvirosios API koncepcijos įgyvendinimas padeda transformuoti verslą, integruoti jį į lanksčią rinkos žaidėjų projektų ekosistemą, sudaro sąlygas nuolat generuoti naujas idėjas ir kurti papildomą vertę valdant įmonės duomenų masyvus.

Integravimo sprendimų rinka vystosi API evoliucijos kontekste – nuo ​​EDI ir SOAP iki Web 2.0, nuo kurio prasidėjo viešųjų API era. Tokių sąsajų skaičius per artimiausius 3 metus gali išaugti daugiau nei 50 kartų ir pasiekti 1 mln. Taip yra dėl daugiakanalio: sąveikos su klientais kanalai turi keistis kartu su jais. Nuolat augantis vartotojų skaičius ir duomenų apimtis paskatino API ekonomikos atsiradimą, kuri padeda atviros sąsajos sukurti novatoriškus verslo modelius, naudojančius įmonės turtą ir paslaugas.

Funkcijos parašas

Funkcijos parašas- Dalis bendras pranešimas funkcijos, kurios leidžia vertimo įrankiams identifikuoti funkciją be kitų. Skirtingos programavimo kalbos turi skirtingas idėjas apie funkcijos parašą, kuris taip pat yra glaudžiai susijęs su funkcijų perkrovimo galimybėmis šiomis kalbomis.

Kartais jie skiriasi skambučio parašas Ir įgyvendinimo parašas funkcijas. Iškvietimo parašas paprastai sudaromas iš funkcijos iškvietimo sintaksinės struktūros, atsižvelgiant į pateiktos funkcijos apimties parašą, funkcijos pavadinimą, faktinių argumentų tipų seką iškvietime ir į funkcijos tipą. rezultatas. Įgyvendinimo parašas paprastai apima kai kuriuos elementus iš funkcijos deklaracijos sintaksės struktūros: funkcijos apimties specifikatoriaus, jo pavadinimo ir formalių argumentų tipų sekos.

Pavyzdžiui, C++ programavimo kalboje paprastą funkciją kompiliatorius vienareikšmiškai identifikuoja pagal pavadinimą ir argumentų tipų seką, kuri yra šios kalbos funkcijos parašas. Jei funkcija yra tam tikros klasės metodas, tada klasės pavadinimas taip pat bus įtrauktas į parašą.

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 pamatyti eilutę „Sveikas, pasauli! Viskas, ką jums reikia padaryti, tai sukurti HTML dokumentą su minimaliu pavadinimu ir paprastu tekstu, kuriame yra ši eilutė. Kas nutinka, 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ą, iškviesdama tokias operacijas kaip „išvalyti langas“, „parašyk Sveiki, pasauli pasirinktu šriftu!“, šių operacijų metu grafinių primityvų biblioteka susisieks su langų sąsajos biblioteka su atitinkamomis užklausomis, o ši biblioteka susisieks su operacinės sistemos API su tokiomis užklausomis kaip „įdėkite mano vaizdo plokštės buferis tai“.

Be to, beveik kiekviename lygyje iš tikrųjų yra keletas galimų alternatyvių API. Pvz.: šaltinio dokumentą galėtume rašyti ne HTML, o LaTeX, o rodymui panaudoti bet kurią naršyklę. Įvairios naršyklės, paprastai kalbant, naudoja skirtingas HTML bibliotekas, be to, visa tai gali būti (paprastai kalbant) sukompiliuota 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.

Pagrindiniai API tipai

Vidinės API

  • API prieiga ribojama tik vidiniams kūrėjams
  • Paraiškos skirtos įmonės darbuotojams

Verslo vairuotojai:

  • Vystymo nuoseklumas
  • Kainos sumažinimas
  • Padidėjęs plėtros efektyvumas

Partnerių API

  • API galimos tik ribotas verslo partnerių skaičius
  • Programos skirtos galutiniams vartotojams ir verslo vartotojams

Verslo vairuotojai:

  • Kūrimo proceso automatizavimas
  • Partnerystės plėtojimas
  • Sąveikos su partneriais proceso optimizavimas

Viešosios API

Prieiga suteikiama bet kuriam išoriniam kūrėjui Programos skirtos galutiniams vartotojams

Verslo vairuotojai:

  • Naujų paslaugų kūrimas
  • Ekosistemos vystymasis
  • Daugiakanalinė sąveika

Garsiausios API

Operacinės sistemos API

GUI API

  • Direct3D (DirectX dalis)
  • DirectDraw (DirectX dalis)
Dalintis