Čo sú metódy api. Čo je API

  • 23.07.2019

Máš psa. Nehovorí však ľudskou rečou. Dokáže mu však „porozumieť“ prostredníctvom príkazov, ktoré ju naučili počas výcviku. Ak poviete psovi, ktorý pozná tím "papuče!" niečo ako "Reksik, prines mi, prosím, moje papuče so zajacmi", len uchom privedie k prezývke, ale papuče nedonesie. Takže API je súbor príkazov, pomocou ktorých vám váš pes rozumie a robí to, čo potrebujete. Toto je na čajník veľmi zjednodušené, ale podstata je myslím jasná.

API je jazyk, regulovaný spôsob, akým jeden počítačový program komunikuje s druhým s cieľom spoločne vykonávať nejakú spoločnú úlohu, keď jeden program vykonáva požiadavky od druhého. Application Programming Interface (API) - Rozhranie pre programovanie aplikácií.

Tak sa zrodila primitívna analógia pre figuríny.

Predstavte si 5 cudzincov hovoriacich rôznymi jazykmi, ktorí potrebujú pracovať a žiť spolu, povedzme, v Rusku. Nikto z nich nevie jazyk toho druhého, pričom potrebujú vykonávať nejakú úlohu ako jeden tím, podľa rolí sa napríklad navzájom kŕmiť a diskutovať o chuti jedla v ruštine. Aby ste to dosiahli, musíte nakúpiť potraviny, uvariť jedlo, pripraviť stôl a diskutovať o jedlách pri jedle. Aby si rozumeli a vedeli nájsť produkty vo vonkajšom svete, naučíme ich základnú sadu ruských slovíčok. Predstavme si, že máme:

1. Francúzsky

2. Španiel

4. Angličan

5. taliančina

Rozdeľme medzi nimi roly na vykonávanie čiastkových úloh nasledovne

Nákup potravín: Francúzština a Španielčina

Jedlá na varenie: španielčina, nemčina a angličtina

Prestieranie: angličtina a taliančina

Diskusia o jedle a chuti Jedlá: VŠETKY

Aby všetky tieto úlohy zvládli, naučíme každú množinu tých ruských slovíčok, ktoré im umožnia vo vzájomnej spolupráci a spolupráci s vonkajším prostredím všetky tieto úlohy splniť. Pozri obrázok nižšie.

Takže. Skupina našich zahraničných priateľov je skupina počítačových programov ktorí potrebujú komunikovať medzi sebou a s vonkajším prostredím.

Jazyk a slová označujúce produkty a základné akcie ktoré sa majú vyrábať je to API- štandardy, podľa ktorých naši zahraniční priatelia komunikujú medzi sebou v ruštine, aby splnili všetky čiastkové úlohy.

API 1: Slová pre produkty a kde kúpiť
API 2: Slová pre jedlá a spôsoby varenia
API 3: Slová pre zariadenia a akcie s nimi
API 4: Slová pre chuť a ocenenie jedla

Môže to byť komplikovanejšie, napríklad nech je API 2 turecké, API 3 čínske, API 4 hindské

Príklad pre figuríny:

1. Je tam vývod. Za ním sa skrýva obrovské množstvo techniky. Ale aby ste to mohli použiť, musíte mať zástrčku so vzdialenosťou medzi tyčami 3 cm a zásuvka dá 220v. Toto je rozhranie API obrovského elektrického výrobného systému.

2. A je tam žehlička. Má svoj vlastný komplexný systém práce. Ale aby ste mohli pracovať so zásuvkou, spĺňa požiadavky API - potrebujete zástrčku so vzdialenosťou 3 cm a čaká na odozvu 220 voltov.

A to je všetko. Tieto 2 systémy sú nezávislé, sú obrovské a zložité. Rozhranie API sa však vytvára tak, aby bolo vzájomné prepojenie čo najjednoduchšie.

API - aplikačné programovacie rozhranie. Ide o množinu funkcií, konštánt, tried a prípadne ďalších objektov na interakciu s určitou časťou programu.

Myslím, že najlepšie sa to dá opísať na príklade. Povedzme, že niekto napísal kalkulačku, ktorú chcete použiť vo svojom programe. Túto kalkulačku treba nejako riešiť. Tieto spôsoby interakcie s kalkulačkou sa budú nazývať API. Môžu byť rôzne a bez ich popisu sa nedá nič robiť. Možno máte funkciu na uloženie čísla do pamäte, inú na vykonanie akcie, tretiu na získanie výsledku. Alebo možno budete mať jednu funkciu, ktorá odovzdá dve čísla a operačný kód medzi nimi a okamžite vráti odpoveď.

Takéto popisy sú ako stvorené na všetko. Operačný systém má API, je to súbor funkcií, pomocou ktorých sa vytvára program: nadviazať sieťové pripojenie, nakresliť okno, spracovať kliknutie na tlačidlo. Pre niektoré servery API je to súbor funkcií, ktoré vykonáva. Prehliadač pristupuje na stránku wikipédie – používa API na to, aby vám na požiadanie vrátil odpoveď.

Rozhrania API môžu byť zábavné aj frustrujúce zároveň. Na jednej strane interakciou s inými aplikáciami môžete výrazne zvýšiť dosah publika a „wow efekt“ vašej aplikácie. Na druhej strane to zahŕňa čítanie ton dokumentácie, učenie sa o stratégiách autentifikácie a analýzu neinformatívnych (alebo dokonca chýbajúcich) chybových správ.

Po prvé, ak stále úplne nerozumiete tomu, čo je API (Application Programming Interface), prečítajte si vysvetlenie Skillcrush a potom prvú časť tohto článku, aby ste to dohnali.

„API“ je neuveriteľne široký pojem – zakaždým, keď vaša aplikácia „komunikuje“ s inou aplikáciou, je to prostredníctvom nejakého druhu API. Komponenty vo vašej vlastnej aplikácii, podobne ako rôzne časti Rails, spolu tiež komunikujú prostredníctvom API. Sú to viac-menej nezávislé podaplikácie, ktoré prenášajú údaje, ktoré každá potrebuje na vykonávanie svojich vlastných špecifických úloh. Vo svete aplikácií je všetko API!

Keď vytvoríte aplikácie s dynamickejšími front-endovými funkciami (ako jednostránkové Javascriptové aplikácie, tak aj jednoduché aplikácie so samostatnými volaniami AJAX), budú komunikovať s backendom Rails cez vaše vlastné API, čo je v skutočnosti len jeden alebo tri riadky kódu navyše. ., ktoré svojim kontrolérom povie, ako majú poskytovať JSON alebo XML namiesto HTML.

V tomto návode sa naučíte, ako vytvoriť vlastné API. V nasledujúcich lekciách sa budeme zaoberať tým, ako interagovať s rozhraniami API iných aplikácií. Lekcie by mali byť dobrým odrazovým mostíkom pre učenie sa o tejto téme, ale je nepravdepodobné, že budú schopné úplne pokryť všetky prípady. Veľká časť práce s API je schopnosť čítať ich dokumentáciu a zistiť, čo od vás chcú.

Body na zamyslenie

Skontrolujte otázky a zistite, či poznáte odpovede. Po dokončení úlohy sa znova skontrolujte.

  • Ako Rails chápe, aký typ súboru očakávate ako odpoveď, keď odošlete požiadavku HTTP.
  • Aký je účel metódy #respond_to?
  • Ako vrátite objekt používateľa (User) pri špecifikovaní atribútov, ktoré nechcete zahrnúť do tohto objektu (t. j. nemôžete len vrátiť User.first)?
  • Pomenujte 2 kroky zo zákulisia metódy #to_json.
  • Ako poviem akcii ovládača, aby zobrazila iba chybové hlásenie?
  • Ako vytvoriť vlastnú chybovú správu?
  • Prečo nemôžete použiť metódy overovania radiča založené na reláciách, ak chcete povoliť programové pripojenie k vášmu API?
  • Čo je to „architektúra orientovaná na služby“?

Základy API

Vaša aplikácia Rails je v skutočnosti už API, aj keď si to možno nemyslíte ako API. Webový prehliadač, ktorý spustia vaši používatelia, je tiež program, takže v skutočnosti odošle požiadavku API do vašej aplikácie Rails, keď používateľ otvorí novú stránku. Máme tendenciu uvažovať týmto spôsobom, pretože vykresľovanie HTML šablón je taká bežná úloha, že túto funkcionalitu jednoducho zakódujeme do našich serverových programov ako štandardný typ odpovede a všetko ostatné považujeme za niečo neobvyklé.

Často však chcete podať žiadosť, ktorá nevyžaduje, aby ste museli prejsť všetkými bolesťami hlavy pri používaní prehliadača. Možno vás nezaujíma štruktúra stránky (HTML), ale na oplátku chcete čisté dáta. Povedzme, že chcete získať zoznam všetkých používateľov. Môžete požiadať o niečo ako http://yourapplication.com/users , čo pravdepodobne spustí akciu #index a vykreslí zoznam všetkých používateľov aplikácie.

Ale prečo sa obťažovať všetkými týmito dodatočnými informáciami, keď všetko, čo chcete, je zoznam používateľov? Najjednoduchšou možnosťou by bolo odoslať požiadavku na rovnakú adresu URL s uvedením očakávanej odpovede JSON alebo XML. Ak správne nastavíte ovládač Rails, získate späť jednoduchý objekt poľa JSON obsahujúci všetkých používateľov. úžasné!

Rovnaký princíp platí, keď komunikujete s externým API. Povedzme, že chcete získať najnovšie „tweety“ používateľa zo služby Twitter. Všetko, čo musíte urobiť, je povedať svojej aplikácii Rails, ako má interagovať s rozhraním Twitter API (t. j. overiť sa), odoslať žiadosť a spracovať súbor „tweetov“, ktoré sa vrátia.

Vytvorenie API

Možno budete chcieť zo svojej aplikácie Rails vytvoriť čisté rozhranie API pre klientske webové stránky, alebo sa jednoducho budete chcieť naučiť, ako odosielať JSON, keď to front-end požaduje. Táto časť sa nebude zaoberať tým, ako vytvoriť plnohodnotné RESTful API s funkciou autentifikácie. Toto je hladký úvod do zaobchádzania s vašou aplikáciou ako s API.

Základy

Ak chcete, aby vaša aplikácia Rails vracala JSON namiesto HTML, musíte to povedať svojmu ovládaču. Skvelé je, že tá istá akcia ovládača môže vrátiť rôzne typy v závislosti od toho, či váš používateľ zadáva bežnú požiadavku prehliadača alebo pristupuje k API cez príkazový riadok. Toto určuje, aký typ požiadavky bol uskutočnený na základe prípony požadovaného súboru, ako napríklad example.xml alebo example.json .

Môžete skontrolovať, čo si Rails "myslí" o type súboru, ktorý očakávate, skontrolovaním denníka servera:

Spustenie GET "/posts/new" pre 127.0.0.1 dňa 2013-12-02 15:21:08 -0800 Spracovanie PostsController#new as HTML

Prvý riadok vám povie, aká adresa URL bola požadovaná, a druhý vám povie, kam bola nasmerovaná a ako s ňou Rails narába. Ak by ste použili rozšírenie .json, vyzeralo by to takto:

Spustenie GET "/posts.json" pre 127.0.0.1 dňa 2013-12-04 12:02:01 -0800 Spracovanie PostsController#index ako JSON

Ak máte spustenú testovaciu aplikáciu, skúste požiadať o iné adresy URL. Ak váš ovládač nevie, ako s nimi zaobchádzať, môže sa vám zobraziť chyba, ale stále by ste mali byť schopní vidieť, čo Rails rozumie vašim požiadavkám.

Vykresľovanie JSON alebo XML

Keď sa rozhodnete, že chcete odpovedať pomocou JSON alebo XML, budete musieť povedať svojmu kontrolórovi, aby namiesto HTML vykreslil JSON alebo XML. Jedným zo spôsobov, ako to urobiť, je použiť metódu #respond_to:

Trieda UsersController< ApplicationController def index @users = User.all respond_to do |format| format.html # index.html.erb format.xml { render xml: @users } format.json { render json: @users } end end end

V tomto prípade #respond_to odovzdá do bloku objekt formátu, ku ktorému môžete pripojiť príslušné volanie vykresľovania. Ak neurobíte nič, html sa vykreslí pomocou štandardnej šablóny Rails (v tomto príklade app/views/index.html.erb).

Funkcia #render je dostatočne inteligentná na to, aby pochopila, ako vykresliť širokú škálu formátov. Keď mu odošlete kľúč:json , zavolá #to_json na hodnote, v tomto príklade @users . Týmto sa vaše objekty Ruby skonvertujú na reťazce JSON, ktoré budú odovzdané žiadajúcej aplikácii.

Takto získate svoje API. Samozrejme, vytvorenie API môže byť trochu komplikovanejšie, ak chcete robiť nejaké fantastické veci, ale je to všetko o základoch.

Zadanie atribútov vrátenia

Povedzme, že sa chcete uistiť, že nevraciate e-mailovú adresu používateľa spolu s objektom používateľa. V tomto prípade budete chcieť zmeniť atribúty, ktoré budú vrátené, a upraviť to, čo robí metóda #to_json.

Predtým by ste jednoducho prepísali metódu #to_json svojou verziou, ale teraz to už nemusíte – v skutočnosti namiesto toho prepíšete metódu #as_json. Metóda #as_json sa používa v metóde #to_json, takže jej úpravou sa implicitne zmení výsledok #to_json , ale dosť špecifickým spôsobom.

#to_json robí 2 veci: spustí #as_json a získa hash atribútov, ktoré sa majú vykresliť do JSON. Potom sa vykreslí do JSON pomocou ActiveSupport::json.encode . Takže úpravou #as_json ste konkrétnejší v časti metódy #to_json, ktorú skutočne chcete zmeniť.

V našom prípade to robíme úpravou #as_json v našom modeli tak, aby vrátil iba atribúty, ktoré potrebujeme:

# app/models/user.rb class User< ActiveRecord::Base # Вариант 1: Полное переопределение метода #as_json def as_json(options={}) { :name =>self.name ) # NEZAHRŇUJTE pole email end # Možnosť 2: Použite štandardnú metódu #as_json def as_json(options=()) super(iba: [:name]) end end

Potom v našom ovládači všetko, čo musíme urobiť, je vykresliť JSON ako normálne (príklad nižšie vždy vráti JSON, či už bola odoslaná požiadavka HTML alebo nie):

# app/controllers/users_controller.rb trieda UsersController< ApplicationController def index render json: User.all end end

Všimnite si, že pri použití #render nemusíte sami volať #to_json – urobí to za vás.

Heroku môže niekedy vyžadovať ďalšie kroky na správne zobrazenie vašich chybových stránok. Pozri. Možno budete musieť najprv odstrániť statické stránky z adresára app/public.

Zabezpečenie zvonku

Povedzme, že chcete povoliť prístup k API iba vtedy, ak je používateľ prihlásený. Vaša existujúca autentifikácia ovládača už funguje – len sa uistite, že máte nastavenú správnu #before_action (napr. before_action:require_login). Možno budete chcieť funkcionalitu, pri ktorej si stránku môžu prezerať prihlásení aj neprihlásení používatelia, ale každý potrebuje vidieť iné údaje. Nechcete, aby neprihlásení používatelia mohli zadávať požiadavky API na získanie citlivých údajov. Podobne nechcete povoliť neautorizovaným používateľom návštevu určitých stránok HTML.

Ak chcete spracovať požiadavky z aplikácie, ktorá nie je v prehliadači (napríklad z príkazového riadku), nemôžete sa pri overovaní spoliehať na súbory cookie prehliadača. To je dôvod, prečo väčšina rozhraní API používa natívne tokeny ako súčasť procesu autentifikácie. O tokenoch si povieme niečo viac v nasledujúcom návode.

Ďalšie kroky

Teraz máte schopnosti používať svoju aplikáciu Rails nielen na HTML, ale aj na akýkoľvek iný formát. Ak chcete ísť ďalej a nechať iných vývojárov vytvárať veci pomocou vašej platformy (napríklad, aby mohli namiesto overovania ako používateľ vytvárať programové požiadavky), budete musieť svoj systém API oveľa bezpečnejšie zabezpečiť. Nebudeme sa tu zaoberať všetkým, ale pozrite sa na nasledujúce:

  • Článok Building Awesome Rails APIs popisuje mnohé z najlepších prístupov na prechod z hračkárskej aplikácie na priemyselné štandardné rozhrania API.

Architektúra orientovaná na služby

Je čas predstaviť architektonický prístup s názvom Service-Oriented Architecture (SOA). Základnou myšlienkou je, že vaša aplikácia bude pozostávať z mnohých služieb, ako je platobný systém, registrácia používateľov, modul odporúčaní atď. Namiesto toho, aby ste to všetko budovali v rámci jednej hlavnej aplikácie, rozdeľujete podsystémy na úplne nezávislé časti, ktoré medzi sebou interagujú pomocou interných rozhraní API.

To je dobré z mnohých dôvodov. Zabezpečením toho, že každej časti vašej aplikácie nezáleží na tom, ako fungujú ostatné časti, a že bude vedieť, ako požiadať o údaje iba prostredníctvom svojho API, môžete vykonať významné zmeny v kóde služby a zvyšok aplikácie bude fungovať ako predtým. Jednu službu môžete úplne nahradiť inou a pokiaľ komunikuje pomocou rovnakých metód API, pôjde to veľmi hladko. Môžete použiť externé rozhrania API ako súčasť svojej aplikácie (napríklad spracovateľov platieb) namiesto písania vlastných. Môžete vytvoriť aplikáciu PHP, ktorá spolupracuje s aplikáciou Python, ktorá spolupracuje s aplikáciou Rails, a všetko bude fungovať, pretože medzi sebou komunikujú pomocou API.

Vo všeobecnosti je dobré snažiť sa, aby každá časť vašej aplikácie bola čo najviac nezávislá. Koncept SOA vás povzbudzuje, aby ste premýšľali presne o tom, aké metódy chcete vystaviť iným častiam vašej aplikácie, a vďaka tomu bude váš kód lepší. Navyše, za predpokladu, že každý hlavný komponent vašej aplikácie je nezávislý, môžete tiež oveľa jednoduchšie izolovať problémy a inteligentnejšie riešiť chyby.

Použitie architektúry orientovanej na služby pre celú aplikáciu je ako rozloženie obrovského, zložitého skriptu Ruby na šikovné triedy a metódy, len vo väčšom meradle.

Jedným z najznámejších prípadov prechodu na architektúru orientovanú na služby je Amazon.com. Jedného dňa v roku 2002 Jeff Bezos otvorene vyhlásil, že všetky pracovné tímy musia prejsť na SOA, inak budú prepustené. Notoricky známy príspevok v blogu zamestnanec spoločnosti Google, určený na interné účely, ale náhodne vystavený verejnosti, hovoril o sile Amazonu pomocou SOA. Toto je skvelé čítanie, takže ho určite ohodnoťte, ale hlavné tézy Bezosovho listu sú vyňaté z nasledujúcich citátov z príspevku:

1) Všetky príkazy teraz poskytujú svoje údaje a funkcie prostredníctvom servisných rozhraní.

2) Tímy musia medzi sebou komunikovať prostredníctvom týchto rozhraní.

3) Iné formy medziprocesovej komunikácie sú zakázané: žiadne priame prepojenia, žiadne priame čítanie údajov z iného príkazu, žiadne modely zdieľanej pamäte, žiadne „zadné vrátka“ a podobne. Jediným povoleným spôsobom komunikácie je prístup k rozhraniu služby cez sieť.

4) Nezáleží na tom, akú technológiu používajú. HTTP, Corba, Pubsub, natívne protokoly – na tom nezáleží. Bezosovi je to jedno.

5) Všetky servisné rozhrania bez výnimky musia byť pôvodne navrhnuté tak, aby bolo možné ich ovládať zvonku. To znamená, že tím musí plánovať a navrhovať, aby bol schopný poskytnúť rozhranie pre vývojárov mimo spoločnosti. Bez výnimky.

6) Každý, kto ignoruje tieto požiadavky, bude prepustený.

SOA je vážna vec. Iste, existuje veľa problémov, ktoré sa vyskytnú pri jeho používaní - pozrite si tento príspevok o "poučeniach" Amazonu - ale má neuveriteľné množstvo výhod.

Počas vytvárania „hračkových“ aplikácií si so SOA pravdepodobne nebudete príliš lámať hlavu, no táto otázka vás určite napadne, keď začnete pracovať pre IT spoločnosť, takže oboznámenie sa s ňou je dobrou praxou.

Tvoj cieľ

  1. Prečítajte si časť 7 príručky Rails Guide to Controllers, kde sa dozviete o vykresľovaní JSON a XML.
  2. Nevyžaduje sa ich prezeranie (pretože idú o niečo ďalej, ako sme momentálne pripravení), ale ak máte záujem, pozrite sa na Railscasts v sekcii Ďalšie zdroje v spodnej časti návodu, kde sa dozviete viac o výhody API.

Záver

Počas kurzu Javascript budeme užšie spolupracovať s vašou aplikáciou ako API. V tomto kurze vytvoríte niekoľko úplných aplikácií, ktoré používajú volania AJAX pre lepšiu používateľskú skúsenosť, čo v skutočnosti zahŕňa vykresľovanie údajov XML alebo JSON namiesto úplnej stránky HTML. Potom vytvoríte niekoľko jednostránkových aplikácií Javascript, ktoré sa spoliehajú na API poskytované vašou aplikáciou Rails, aby získali všetky potrebné údaje z databázy a inak sa spúšťajú na strane klienta (v prehliadači).

Najlepší spôsob, ako sa vysporiadať s API, je vytvoriť ho a interagovať s ním, na čo sa zameriame v našich projektoch.

API(Angličtina) Prgramovacie prostredie aplikácií) - je to aplikačné programovacie rozhranie. Rozhranie API konkrétnej aplikácie alebo služby poskytuje sadu hotových procedúr, funkcií a premenných, ktoré môžu vývojári tretích strán použiť na vytváranie vlastných aplikácií a skriptov na prácu s touto službou.

Pri práci cez API aplikácia odošle požiadavku do služby a dostane odpoveď obsahujúcu požadované dáta bez ohľadu na to, v akom programovacom jazyku sú vytvorené.

Čo vám umožňuje besellerská platforma API?

Účelom vytvorenia besellerovej platformy API je poskytnúť aplikáciám tretích strán možnosť interakcie s webovými stránkami a databázami internetových obchodov.

Beseller API vám umožňuje vytvárať vlastné aplikácie, ako aj synchronizovať údaje so systémami automatizácie obchodných procesov: účtovníctvo, riadenie zásob, CRM, e-mailové spravodaje atď.

Majitelia internetových obchodov využívajúcich služby tretích strán a ich vlastné aplikácie majú možnosť pristupovať cez API k:

Informácie o uskutočnených objednávkach

Dostupné akcie (metódy) spracovania informácií o objednávkach:

  1. Výber informácií o objednávke podľa ID
  2. Výber informácií o objednávkach podľa filtra
  3. Počet objednávok podľa filtra
  4. Vytvorte objednávku
  5. Odstránenie objednávky
  6. Hromadné vymazanie objednávok
  7. Výber všetkých dostupných stavov pre objednávky
  8. Aktualizácia stavu objednávky
  9. Pridanie komentára k objednávke

Informácie o predplatiteľovi

  1. Pridanie predplatiteľa
  2. Odstránenie predplatiteľa
  3. Hromadné odstraňovanie predplatiteľov
  4. Výber údajov o predplatiteľoch podľa filtra
  5. Počet odberateľov podľa filtra

Informácie o registrovaných užívateľoch

Dostupné akcie (metódy) na spracovanie informácií o predplatiteľoch:

  1. Výber informácií o registrovaných užívateľoch podľa ID
  2. Výber informácií o všetkých registrovaných užívateľoch
  3. Výber informácií o všetkých údajoch zadaných používateľom pri registrácii:
    • Celé meno;
    • Kontaktná emailová adresa;
    • Kontaktné telefónne číslo;
    • Uvedená adresa doručenia: PSČ, názov obce, názov ulice, číslo domu, číslo budovy, číslo bytu, poschodie;

Poznámka! Pri registrácii používateľ nemusí vyplniť všetky vyššie uvedené polia.

Plány vývoja API

V blízkej budúcnosti plánujeme otvoriť rozhrania na podporu interakcie obchodov s aplikáciami a službami tretích strán na prácu s:

  1. sekcie adresárov.
  2. Tovar.
  3. košík.
  4. zľavy.
  5. Spôsoby doručenia.
  6. Spôsob platby.

Na testovanie interakcie s beseller platformou API bol vytvorený testovací obchod beseller-api.shop.by.

Pre prístup do testovacieho obchodu musíte zadať meno používateľa a heslo. Môžete ich získať na požiadanie od svojho osobného manažéra.

Pred testovaním interakcií API vám odporúčame:

  1. zadajte niekoľko objednávok sami;
  2. prihlásiť sa na odber noviniek;
  3. pozrite si, ako sa na paneli administrácie obchodu zobrazujú informácie o zadaných objednávkach a predplatiteľoch.

Ovládací panel obchodu je dostupný na: beseller-api.shop.by/manager/ . Prihlasovacie meno a heslo pri vstupe do ovládacieho panela sú podobné prihlasovaciemu hláseniu a heslu pre prístup do obchodu.

Ako sa pripojiť cez API k vášmu obchodu?

Ak chcete prepojiť aplikáciu s vaším obchodom, musíte zadať adresu URL pre prístup k API formulára:

http://your_site_address:8082/graphql?token=your_personal_secret_key

Tajný kľúč môžete získať na požiadanie od svojho osobného manažéra.

Funkcie a premenné GraphQL pre prácu s besellerskou platformou API

Ako sa pripojiť k API pomocou programovacieho jazyka PHP

Pre pohodlie práce s besellerským rozhraním API môžete použiť:

  1. Triedy vyvinuté nami pod PHP.
    1. GraphqlClient- prijíma a prenáša dáta na server;
    2. GraphQlHelper- obsahuje implementované dotazovacie a mutačné API;
  2. Príklady použitia tried na výber a zmeny v databáze internetového obchodu.

Nastavenie miestneho prostredia

Aby ste mohli vizuálne demonštrovať odosielanie požiadaviek do API a prijaté odpovede, môžete použiť lokálne prostredie.

Ako lokálne prostredie sa používa GraphiQL Feen, ide o rozšírenie pre prehliadač Google Chrome, ktoré umožňuje generovať požiadavky na API.

Po nainštalovaní aplikácie sa vo vašom prehliadači v blízkosti panela s adresou zobrazí ikona aplikácie.

Otvorte aplikáciu GraphiQL Feen a prejdite na kartu „SERVERY“, vyberte spôsob odoslania POST a potom zadajte adresu URL prístupu k API.

Nasledujúca adresa by sa mala použiť ako testovacia adresa URL:

Lokálne prostredie je nakonfigurované, môžete generovať požiadavky na API. Ak to chcete urobiť, otvorte kartu „QUERIES“.

Vytvorenie požiadavky na beseller API pomocou GraphiQL Feen a prijatej odpovede

Vysvetlenie snímky obrazovky:

  1. Uložené požiadavky
  2. Pole na zadávanie požiadaviek
  3. Variabilné vstupné pole
  4. Prijatá odpoveď
  5. tlačidlo štart

Príklad žiadosti o získanie zoznamu dokončených objednávok za určité časové obdobie

dotaz ($first:Int, $offset:Int, $filter: OrdersFilterType)(
objednávky(prvý:$prvý, odsadenie:odstup $, filter:$filter)(
komentovať
postavenie(
id
popis
názov
}
dátum_vytvorenia
dátum_aktualizácie
Celkom(
prípona
hodnotu
}
platba (
názov
popis
náklady (
prípona
hodnotu
}
}
doručenie (
názov
popis
náklady (
prípona
hodnotu
}
}
meny (
bankový kód
kurz
prípona
}
použivateľské dáta(
názov
popis
hodnotu
}
}
}

Určenie časového rozpätia pre načítanie údajov o dokončených objednávkach

{
"filter" :(
"date_after": "2017-11-16T00:00:01Z",
"date_before": "2017-11-23T00:00:01Z"
}
}

Príklad odpovede API

{{
"údaje" :(
"objednávky": [
{
"comment": "Culpa officiis velut.",
"create_date": "22. 11. 2017 16:23:28",
"meny": [
{
"bank_code": "BYN",
kurz: 10 000
"suffix": "drieť"
}
],
"doručenie" :(
"cena": [
{
"suffix": "rub.",
hodnota: 0
}
],
"description": "Kuriér",
"name": "custom"
},
platba: (
"cena": [
{
"suffix": "rub.",
hodnota: 0
}
],
"description": "Plastové karty",
"name": "custom"
},
postavenie: (
"description": "Nové",
"id": 1,
"name": "new"
},
"Celkom": [
{
"suffix": "rub.",
hodnota: 4450
}
],
"update_date": "2017-11-22 16:23:28",
"použivateľské dáta": [
{
"description": "E-mailová adresa",
"name": "e-mail",
"value": " [chránený e-mailom]"
},
{
"description": "Telefón",
"name": "telefón",
"value": "784.392.3949x69329"
},
{
"description": "Adresa",
"name": "registrácia",
"value": "607 Erik Station Suite 057\nReynaberg, WY 83542-0037"
},
{
"description": "Komentár",
"name": "komentár",
"value": "Ide mi illo optio."
},
{
"description": "Meno",
"name": "fio",
"value": "Jordi Mann MD"
}
]
}

Tento krátky termín je dobre známy každému, kto sa nejakým spôsobom stretol s vývojom. Ale nie každý chápe, čo presne to znamená a prečo je to potrebné. Vývojár Peter Gazarov hovoril o API jednoduchými slovami vo svojom blogu.

Skratka API znamená „Application Programming Interface“ (rozhranie pre programovanie aplikácií, rozhranie pre programovanie aplikácií). Väčšina veľkých spoločností v určitej fáze vyvíja API pre klientov alebo na interné použitie. Aby ste pochopili, ako a ako sa API používa vo vývoji a podnikaní, musíte najprv pochopiť, ako funguje World Wide Web.

World Wide Web a vzdialené servery

WWW si možno predstaviť ako obrovskú sieť prepojených serverov, ktoré ukladajú každú stránku. Obyčajný laptop sa môže zmeniť na server schopný obsluhovať celú lokalitu v sieti a vývojári používajú lokálne servery na vytváranie lokalít predtým, ako ich otvoria širokému okruhu používateľov.

Pri písaní do panela s adresou prehliadača www.facebook.com na vzdialený server Facebook sa odošle zodpovedajúca požiadavka. Keď prehliadač dostane odpoveď, interpretuje kód a vykreslí stránku.

Zakaždým, keď používateľ navštívi stránku na webe, interaguje s API vzdialeného servera. API je časť servera, ktorá prijíma požiadavky a odosiela odpovede.

API ako spôsob, ako slúžiť zákazníkom

Mnoho spoločností ponúka API ako hotový produkt. Napríklad Weather Underground predáva prístup k svojmu API údajov o počasí.

Scenár použitia: na stránke malej firmy je formulár na objednávanie stretnutí pre klientov. Spoločnosť chce do neho vložiť Google Kalendár, aby zákazníci mohli automaticky vytvoriť udalosť a vyplniť podrobnosti o nadchádzajúcom stretnutí.

Aplikácia API: cieľ – server lokality by mal priamo kontaktovať server Google so žiadosťou o vytvorenie udalosti so zadanými podrobnosťami, prijať odpoveď od spoločnosti Google, spracovať ju a odovzdať príslušné informácie prehliadaču, napríklad správu s potvrdením používateľovi .

Alternatívne môže prehliadač odoslať požiadavku na serverové API Google a obísť server spoločnosti.

Ako sa Google Calendar API líši od API akéhokoľvek iného vzdialeného servera v sieti?

Technicky je rozdiel vo formáte požiadavky a odpovede. Na vygenerovanie kompletnej webovej stránky prehliadač očakáva odpoveď v značkovacom jazyku HTML, zatiaľ čo rozhranie Google Calendar API vráti iba údaje vo formáte ako JSON.

Ak požiadavku na API zadáva server webovej stránky spoločnosti, potom je to klient (rovnako ako klient je prehliadač, keď používateľ otvorí webovú stránku).

Vďaka API dostane používateľ možnosť vykonať akciu bez toho, aby opustil web spoločnosti.

Väčšina moderných webových stránok používa aspoň niekoľko rozhraní API tretích strán. Mnohé úlohy už majú hotové riešenia, ktoré ponúkajú vývojári tretích strán, či už ide o knižnicu alebo službu. Často je jednoduchšie a spoľahlivejšie uchýliť sa k hotovému riešeniu.

Mnoho vývojárov distribuuje aplikáciu na niekoľko serverov, ktoré navzájom spolupracujú pomocou API. Servery, ktoré vykonávajú pomocnú funkciu vo vzťahu k hlavnému aplikačnému serveru, sa nazývajú mikroslužby.

Keď teda spoločnosť ponúka svojim používateľom rozhranie API, znamená to jednoducho, že vytvorila sériu špeciálnych adries URL, ktoré vracajú údaje iba ako odpoveď.

Takéto požiadavky možno často odosielať prostredníctvom prehliadača. Keďže prenos dát cez HTTP je v textovej forme, prehliadač vždy dokáže zobraziť odpoveď. Napríklad prostredníctvom prehliadača môžete priamo pristupovať k GitHub API (https://api.github.com/users/petrgazarov) a bez prístupového tokenu a získať nasledujúcu odpoveď vo formáte JSON:

Prehliadač perfektne zobrazuje odpoveď JSON, ktorú je možné vložiť do kódu. Stačí jednoducho extrahovať údaje z takéhoto textu, aby ste ich mohli použiť podľa vlastného uváženia.

Niekoľko ďalších príkladov API

Slovo „aplikácia“ (aplikovaná, aplikácia) môže byť použité v rôznych významoch. V kontexte API to znamená:

  • softvér so špecifickou funkciou,
  • server ako celok, aplikácia ako celok alebo len samostatná časť aplikácie.

Písmeno „A“ v anglickej skratke môže nahradiť akýkoľvek softvér, ktorý sa dá jasne odlíšiť od prostredia a môže mať aj nejaký druh API. Napríklad, keď vývojár implementuje do kódu knižnicu tretej strany, stane sa súčasťou celej aplikácie. Keďže ide o samostatný softvér, knižnica bude mať nejaký druh rozhrania API, ktoré jej umožní interakciu so zvyškom kódu aplikácie.

V objektovo orientovanom dizajne je kód reprezentovaný ako kolekcia objektov. V aplikácii môžu byť stovky takýchto objektov vzájomne interagujúcich. Každý z nich má svoje API – sadu verejnosti vlastnosti a metódy interakcie s inými objektmi v aplikácii. Objekty môžu mať tiež súkromné, interná logika, ktorá je skrytá pred okolím a nie je API.

Je čas hovoriť o takom koncepte, ako je Funkcie API vo Visual Basic. Prečo sú tieto funkcie dôležité vo Visual Basic? Pozrime sa, po prvé, keď začnete programovať vo Visual Basic, okamžite pochopíte, že pomocou týchto funkcií môžete písať veľmi seriózne programy, a po druhé, jednoducho nemôžete veľa urobiť bez použitia funkcií API, napríklad takmer všetko, čo súvisí s používaním operačný systém Windows ( napríklad: zistite používateľské meno, miesto na pevnom disku a podobne).

Aby ste však mohli začať uvádzať tieto funkcie do praxe, musíte vedieť, čo to je, najprv si o tom niečo povieme.

Teória o funkciách rozhrania Visual Basic API

API je skratka pre Application Programming Interface ( Prgramovacie prostredie aplikácií). Inými slovami, API je súbor funkcií, ktoré samotný operačný systém dáva programátorovi na použitie vo svojich programoch. Pomocou API môžu programátori ľahko uviesť svoje nápady do praxe.

Funkcie API možno volať z jazyka Visual Basic na vykonávanie úloh, na ktoré nestačí štandardný kód jazyka Visual Basic. Napríklad štandardné nástroje Visual Basic neumožňujú vypnúť počítač ani ho reštartovať. To všetko sa však dá jednoducho vykonať volaním príslušnej funkcie API.

Takmer všetky funkcie, ktoré sa nachádzajú v systéme Windows, sa nachádzajú vo vnútri knižnice DLL ( Dynamic Link Library). Všetky súbory dll sa nachádzajú v systémovom priečinku Windows. Existuje viac ako 1 000 funkcií API, ktoré spadajú zhruba do štyroch hlavných kategórií.

  • Práca s aplikáciami – spúšťanie a zatváranie aplikácií, spracovanie príkazov menu, presúvanie a zmena veľkosti okien;
  • Grafika - vytváranie obrázkov;
  • Systémové informácie - určenie aktuálneho disku, veľkosti pamäte, aktuálneho používateľského mena atď.;
  • Práca s registrom - manipulácia s registrom Windows.

Aplikácia funkcií API v praxi

Teraz prejdime k využívaniu týchto funkcií v praxi. Funkcie API volané vo Visual Basicu musia byť najskôr deklarované. Deklarácia špecifikuje názov knižnice DLL a funkcie, ako aj informácie o počte a type argumentov.

Procedúry DLL sú deklarované pomocou príkazu Declare v sekcii Všeobecné deklarácie modulu formulára alebo štandardného modulu:

Deklarovať názov funkcie Lib "knižnica" [([ _ premenná [,ByVal,] premenná ]...])] Ako typ

Procedúry DLL nachádzajúce sa v štandardných moduloch sú štandardne verejné a možno ich volať odkiaľkoľvek v aplikácii. Procedúry deklarované v module formulára sú súkromné ​​a musí im predchádzať kľúčové slovo Private.

Sekcia Lib vám povie, kde hľadať súbor DLL obsahujúci funkciu. Pri odkazovaní na základné knižnice systému Windows (user32.dll, kernel32.dll, gdi.dll) je rozšírenie voliteľné.

Ak cesta k súboru nie je zadaná, prehľadávanie adresárov sa spustí v nasledujúcom poradí

  1. Adresár obsahujúci súbor EXE programu;
  2. aktuálny adresár;
  3. systémový adresár Windows;
  4. adresár systému Windows;
  5. Premenná prostredia cesty.

Tu je malý zoznam štandardných Windows DLL:

  • advapi.dll - ochrana NT, registra a ďalšie pokročilé služby;
  • comdlg.dll - štandardné dialógové okná;
  • gdi.dll - rozhranie grafického zariadenia;
  • kernel32.dll - pamäť, disky, procesy, zdroje;
  • mpr.dll - siete;
  • netapi32.dll - sieťová knižnica API;
  • shell32.dll - shell Windows, drag-and-drop, výber ikon;
  • user32.dll - užívateľské rozhranie - okná, menu, riadky, správy;
  • version.dll - kontrola verzií;
  • winmm.dll - multimédiá, zvuk, joysticky, časovače;
  • winspoll.dll - správca tlače.

Väčšina procedúr DLL je zdokumentovaná pomocou zápisu programovacieho jazyka C a C++. Ak chcete úspešne previesť funkciu API na príkaz Declare, musíte pochopiť mechanizmus odovzdávania argumentov. Argumenty sa zvyčajne odovzdávajú podľa hodnoty. V tomto prípade sa kľúčové slovo ByVal umiestni pred názov argumentu. Ak je argument odovzdaný odkazom, nastaví sa ByRef.

Tu je najmenší zoznam funkcií, ktoré sa používajú vo Visual Basic:

  • BitBlt - skopíruje obrázok z jedného hDC do druhého;
  • FindWindow - nájde rukoväť okna so zadaným popisom;
  • GetCursorPos - vráti aktuálnu polohu kurzora myši (globálne);
  • GetDriveType - vráti typ disku;
  • GetForegroundWindow - vráti Handle aktívneho okna;
  • SetCursorPos - nastaví novú pozíciu kurzora myši;
  • SetVolumeLabel - zmení označenie disku;
  • SetWindowPos - nastavuje polohu okna s určitým Handle (túto funkciu môžete použiť aj na to, aby bolo okno navrchu zo všetkých;
  • ShellExecute - spustí aplikáciu spojenú s príponou, ktorá má zadaný súbor (môže tiež spustiť iba zadanú aplikáciu);
  • ShowCursor - skryje alebo zobrazí kurzor myši na obrazovke.

Príklady registrov

Pri programovaní v jazyku Visual Basic a v iných jazykoch tiež nastáva problém, keď potrebujete použiť register Windows, ale pomocou funkcií api je to jednoduché, napríklad:

Ak chcete prečítať parameter reťazca, použite funkciu GetRegString

Príklad:

Dim test As String test = GetRegString(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\DirectX", "Version") Form1.Caption = test

Na čítanie parametra GetRegDWord DWORD

Príklad:

Dim test As Long test = GetRegDWord(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\Internet Explorer\AboutURLs", "Domov") Form1.Caption = test

SetRegString sa používa na zápis parametra reťazca

Príklad:

SetRegString HKEY_LOCAL_MACHINE, _ "Softvér\test", "MôjProgram", "Možnosti"

Ak kľúč alebo parameter nebol vytvorený, vytvoria sa, ak kľúč alebo parameter už existuje, nové hodnoty prepíšu staré.

Ak chcete zapísať parameter DWORD, použite SetRegDWord

Príklad:

SetRegDWord HKEY_LOCAL_MACHINE, _ "Softvér\test", "MôjProgram", "555"

Ak chcete odstrániť kľúč z registra, použite funkciu DeleteRegKey.

Príklad:

DeleteRegKey HKEY_LOCAL_MACHINE, "Softvér", "test", Pravda

Druhý parameter - Rodičovský kľúč
Tretím parametrom je True, ak sa na vymazanie vyžaduje potvrdenie, alebo False, ak sa potvrdenie nevyžaduje.

Ak chcete odstrániť parameter z registra, použite funkciu DeleteRegValue

Príklad:

DeleteRegValue HKEY_LOCAL_MACHINE,_ "Software\Microsoft\Internet Explorer\AboutURLs", "mozilla", False

V skutočnosti sú možnosti funkcií API v operačnom systéme Windows takmer neobmedzené. Dokončime túto recenziu tejto funkcie jazyka Visual Basic a nakoniec napíšme malý program pomocou funkcií API.

Tento program jednoducho zobrazí správu na obrazovke, vložte nasledujúci kód:

Funkcia súkromnej deklarácie BeginPath Lib "gdi32" (ByVal hdc As Long) As Long Funkcia súkromnej deklarácie EndPath Lib "gdi32" (ByVal hdc As Long) As Long Funkcia Private Declare PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Funkcia SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Sub Form_Load() Const TEXT = "Použili ste API" Dim hRgn As Long Font.Name = "Times New Roman " Font.Bold = True Font.Size = 60 Width = TextWidth(TEXT) Height = TextHeight(TEXT) BeginPath hdc Print TEXT EndPath hdc hRgn = PathToRegion(hdc) SetWindowRgn hWnd, hRgn, False Move (Screen.Width) / Width 2 , (Screen.Height - Height) / 2 End Sub

Použili sme tu 4 funkcie (BeginPath, EndPath, PathToRegion, SetWindowRgn), ktoré sa nachádzajú v dvoch dll knižniciach (gdi32, user32).

To je zatiaľ všetko!