Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • In contact cu
  • Ce funcționează cu api. Iată o mică listă de DLL-uri standard Windows

Ce funcționează cu api. Iată o mică listă de DLL-uri standard Windows

Cutie cu nisip

om corpulnic 26 noiembrie 2012 la 13:59

Ce este API

  • Cameră de depozitare *

Salutari!
În acest articol, ne vom uita la ce este un API, unde, cum și pentru ce este utilizat. Ne vom uita, de asemenea, la modul în care API-ul poate fi utilizat în dezvoltarea dvs. web și cum poate face viața mai ușoară unui programator web.

Deci, să începem cu o definiție. API (Application Programming Interface) este o interfață de programare, o interfață pentru crearea de aplicații. Într-un limbaj mai ușor de înțeles, API-ul este un cod gata făcut pentru a simplifica viața unui programator. API-ul a fost creat astfel încât programatorul să poată facilita cu adevărat sarcina de a scrie cutare sau cutare aplicație prin utilizarea unui cod gata făcut (de exemplu, funcții). Cunoscutul jQuery scris în JavaScript este, de asemenea, un fel de API. Dacă luăm în considerare acest exemplu special, atunci jQuery face mult mai ușor să scrieți cod. Ceea ce s-ar putea face în 30 de rânduri cu instrumentele JavaScript obișnuite, este scris prin jQuery în 5-6. Dacă luăm în considerare API-ul în general, atunci puteți găsi o mulțime de servicii care reprezintă soluții de dezvoltare. Cel mai faimos astăzi este serviciul code.google.com, care oferă aproximativ cincizeci de API-uri diferite! Aceasta este o interfață pentru crearea de aplicații Android și diverse API-uri pentru lucrul cu AJAX și diverse API-uri de aplicații care pot fi personalizate cu ușurință după bunul plac.

La urma urmei, are sens să scrii cod cu propriile mâini? De ce să lucrezi la ceea ce a fost deja creat? Are sens să refuzi soluții gratuite (și de fapt, ajutor gratuit) în dezvoltarea web? Dacă ați răspuns „NU” la toate aceste întrebări, atunci luați în considerare că înțelegeți esența API-ului.

Dar vreau și să clarific. Dezvoltatorii începători NU ar trebui să folosească soluții semifinite, deoarece nu vor face față sarcinii reale în viitor. Prin urmare, dacă sunteți un programator web începător, atunci nu utilizați semifabricate! Învață să gândești cu capul, construiește diverși algoritmi pentru a înțelege esența programării. Mai spun, adresându-mă deja tuturor, că API-ul nu este o soluție gata făcută, este un mediu, o interfață pentru crearea propriilor proiecte. Nu mănânci chiftele congelate de la magazin, nu? Le prăjiți mai întâi, nu? Această analogie surprinde foarte clar esența API-ului.

În general, am spus ce este API-ul, unde și cum este folosit, cel mai important, pentru ce. Vă doresc un studiu plăcut al programării web și înțelegerea profunzimii sale mai mari!

Fără etichete

Acest articol nu face obiectul comentariilor, deoarece autorul său nu este încă un membru cu drepturi depline al comunității. Veți putea contacta autorul numai după ce acesta va primi

Prin definiția de la Wikipedia, API este un set de clase gata făcute, proceduri, funcții, structuri și constante furnizate de o aplicație (bibliotecă, serviciu) pentru utilizare în produse software externe. Folosit de programatori pentru a scrie tot felul de aplicații.

Dar, deoarece o mare parte din Wikipedia nu este de înțeles pentru mulți oameni, voi încerca să explic pe degete ce este un API și pentru ce sunt făcute de obicei și cum sunt folosite.

API-urile sunt complet diferite, dar de exemplu, am ales o situație în care avem o rețea de magazine și o singură bază de date comună. Imaginează-ți că deții un program de afiliere. Programul de afiliere funcționează după următorul principiu: o persoană se înregistrează în programul de afiliere și primește un motor de magazin. Apoi poate pune acest magazin pe gazduirea lui și poate începe să lucreze. Dar toate datele din acest magazin sunt preluate din baza noastră de date, adică trebuie să oferim fiecărui partener acces la prețioasa noastră bază de date. Vă puteți imagina cât de periculos este? La urma urmei, trebuie să deschidem accesul la baza de date din exterior, astfel încât toate magazinele partenere să poată lucra cu ea. Dar ce se întâmplă dacă datele de acces cad în mâinile intrușilor?

Aici ne va ajuta API-ul. În loc să oferim acces la baza de date, vom realiza pur și simplu un API prin care magazinele partenere vor primi informații. Astfel, doar scriptul nostru API va funcționa cu baza de date, iar magazinele vor funcționa cu acest script.

Cum functioneaza?
De exemplu, un magazin trimite o solicitare către API-ul nostru
http://ourapi.com/get_books?limit=20
iar API-ul nostru înțelege că trebuie să returneze o listă de cărți formată din 20 de exemplare, deoarece am trecut de parametrul limită egal cu 20. Scriptul nostru (API) face o solicitare la baza de date, primește o listă de cărți și le returnează la stocați (de fapt, pur și simplu afișează ) într-un anumit format. Formatul în care API-ul returnează informații poate fi absolut orice, principalul lucru este că magazinele noastre îl înțeleg. Poate fi JSON, o matrice serializată sau XML. Nu mai contează, principalul e să înțelegi principiul.

Setul de comenzi pe care API-ul le înțelege depinde de dvs. De exemplu, în cazul nostru, acestea ar putea fi comenzi precum obținerea unei liste de cărți, obținerea unei liste de categorii, obținerea de cărți populare, obținerea de cărți noi etc. Astfel, chiar dacă un atacator ar putea accesa API-ul nostru, tot ce ar putea face era să obțină o listă de cărți, iar acest lucru nu reprezintă nicio amenințare pentru baza noastră de date.

Sper că am putut explica ce este un API cu un exemplu simplu. Dacă aveți întrebări, adresați-le în comentarii sau pe forum și vom fi bucuroși să vă ajutăm să le rezolvați.

Să începem cu elementele de bază: ce este un API? Abrevierea înseamnă Interfață de programare a aplicațiilor sau o interfață pentru programarea aplicațiilor. Numele pare să vorbească de la sine, dar este mai bine să luăm în considerare o explicație mai detaliată.

După cum am menționat deja, API-ul este, în primul rând, o interfață. O interfață care permite dezvoltatorilor să folosească blocuri gata făcute pentru a construi o aplicație. În cazul dezvoltării aplicațiilor mobile, o bibliotecă pentru lucrul cu o „casă inteligentă” poate acționa ca API - toate nuanțele sunt implementate în bibliotecă și vă referiți la acest API doar în codul dvs.

În cazul aplicațiilor web, API-ul poate returna date într-un alt format decât HTML standard, ceea ce îl face convenabil de utilizat atunci când scrieți propriile aplicații. API-urile publice terță parte returnează cel mai adesea date în unul dintre cele două formate: XML sau JSON. În cazul în care decideți să creați un API pentru aplicația dvs., amintiți-vă că JSON este mult mai concis și mai ușor de citit decât XML, iar serviciile care oferă acces la date în format XML îl elimină treptat pe acesta din urmă.

API în aplicații web prin exemple

O aplicație - de exemplu, Github - are propriul API pe care alți dezvoltatori îl pot folosi. Modul în care îl vor folosi depinde de posibilitățile pe care le oferă API-ul și de cât de bine funcționează imaginația dezvoltatorilor. API-ul Github permite, de exemplu, să obțineți informații despre utilizator, avatarul său, cititori, depozite și multe alte informații utile și interesante.

În mod similar, puteți trimite o solicitare în orice limbă, inclusiv în Ruby. Răspunsul la cerere va fi cam așa:

( „login” : „Freika” , „id” : 3738638, „avatar_url” : „https://avatars.githubusercontent.com/u/3738638?v=3”, "gravatar_id" : "" , "url": „https://api.github.com/users/Freika”, "html_url" : "https://github.com/Freika" , "followers_url" : „https://api.github.com/users/Freika/followers”, "following_url": „https://api.github.com/users/Freika/following(/other_user)”, "gists_url" : „https://api.github.com/users/Freika/gists(/gist_id)”, "starred_url" : „https://api.github.com/users/Freika/starred(/owner)(/repo)”, "subscriptions_url" : „https://api.github.com/users/Freika/subscriptions”, "organizations_url" : „https://api.github.com/users/Freika/orgs”, "repos_url": „https://api.github.com/users/Freika/repos”, "events_url" : „https://api.github.com/users/Freika/events(/privacy)”, "received_events_url" : „https://api.github.com/users/Freika/received_events”, "type" : "Utilizator" , "site_admin" : false , "name" : "Evgeniy" , "company" : "" , "blog" : "http://frey.su/" , "location" : " Barnaul" , "email" : "" , "hireable" : true , "bio" : null, "public_repos" : 39, "public_gists" : 13, "followers" : 15, "following" : 21, "created_at" : "2013-03-01T13:48:52Z" , "updated_at" : "2014-12-15T13:55:03Z" )

După cum puteți vedea din blocul de mai sus, răspunsul conține o autentificare, un avatar, un link către un profil de pe site și în API, starea utilizatorului, numărul de depozite publice și alte informații utile și interesante.

Un singur API nu este suficient

Crearea unui API cu drepturi depline pentru aplicația dvs. este doar jumătate din luptă. Cum ai de gând să accesezi API-ul? Cum îl vor accesa utilizatorii?

Primul lucru care îmi vine în minte este seria obișnuită de solicitări HTTP pentru a obține informațiile dorite, iar acesta este răspunsul greșit. Cel mai evident mod în acest caz nu este cel mai convenabil și simplu. Ar fi mult mai rezonabil să se creeze o bibliotecă specială pentru lucrul cu interfața, care să descrie toate metodele necesare pentru primirea și trimiterea informațiilor folosind API-ul.

Să folosim încă o dată Github pentru a da un exemplu: pentru a lucra cu API-ul acestui serviciu excelent (iar interfața sa oferă posibilități extinse), au fost create mai multe biblioteci în diferite limbi, de exemplu, bijuteria Octokit. În documentația pentru astfel de biblioteci (și bijuteria dată ca exemplu), orice dezvoltator interesat va putea găsi toate modalitățile necesare pentru a primi informații de la Github și a le trimite înapoi prin API-ul serviciului.

Astfel, dacă vă creați propriul API, gândiți-vă să creați biblioteci pentru a lucra cu el și în cele mai comune limbi. Și fiți pregătit că, la un anumit nivel de cerere pentru aplicația dvs., altcineva își poate crea propria bibliotecă pentru a lucra cu API-ul dvs. Este în regulă.

Link-uri utile

În articolele următoare, vom vorbi despre cum să creați corect un API, să asigurați securitatea acestuia și să restricționați accesul la unele informații.

Este timpul să vorbim despre un astfel de concept ca Funcții API-uri în Visual Basic. De ce sunt importante aceste funcții în Visual Basic? Să vedem, în primul rând, când începeți să programați în Visual Basic, veți înțelege imediat că folosind aceste funcții puteți scrie programe foarte serioase și, în al doilea rând, pur și simplu nu puteți face multe fără să utilizați funcții API, de exemplu, aproape tot ce are legătură cu utilizarea sistemul de operare Windows ( de exemplu: aflați numele de utilizator, spațiul pe hard disk și așa mai departe).

Dar pentru a începe să puneți aceste caracteristici în practică, trebuie să știți care sunt ele, să vorbim mai întâi despre asta.

Teoria asupra funcțiilor API Visual Basic

API este o abreviere pentru Application Programming Interface ( interfața de programare a aplicației). Cu alte cuvinte, un API este un set de funcții pe care sistemul de operare însuși le oferă programatorului să le folosească în programele lor. Folosind API-ul, programatorii își pot pune cu ușurință ideile în practică.

Funcțiile API pot fi apelate din Visual Basic pentru a efectua sarcini pentru care codul standard Visual Basic este insuficient. De exemplu, instrumentele standard Visual Basic nu vă permit să opriți computerul sau să-l reporniți. Cu toate acestea, toate acestea pot fi făcute cu ușurință apelând funcția API corespunzătoare.

Aproape toate funcțiile care se află în Windows sunt situate în interiorul DLL ( Biblioteca de linkuri dinamice). Toate fișierele dll se află în folderul de sistem Windows. Există peste 1.000 de funcții API care se încadrează aproximativ în patru categorii principale.

  • Lucrul cu aplicații - lansarea și închiderea aplicațiilor, procesarea comenzilor din meniu, mutarea și redimensionarea ferestrelor;
  • Grafică - crearea de imagini;
  • Informații de sistem - determinarea discului curent, dimensiunea memoriei, numele utilizatorului curent etc.;
  • Lucrul cu registry - manipulări cu registry Windows.

Aplicarea funcțiilor API în practică

Acum să trecem la utilizarea acestor funcții în practică. Funcțiile API apelate în Visual Basic trebuie mai întâi declarate. Declarația specifică numele DLL-ului și funcției, precum și informații despre numărul și tipul de argumente.

Procedurile DLL sunt declarate cu comanda Declarare în secțiunea Declarații generale a unui modul de formular sau a unui modul standard:

Declarați numele funcției Lib "biblioteca" [[([ _ variabilă [,ByVal,] variabilă ]...])] Ca tip

Procedurile DLL găsite în modulele standard sunt publice în mod implicit și pot fi apelate de oriunde în aplicație. Procedurile declarate într-un modul de formular sunt private și trebuie să fie precedate de cuvântul cheie Private.

Secțiunea Lib vă spune unde să căutați fișierul DLL care conține funcția. Când faceți referire la bibliotecile de bază Windows (user32.dll, kernel32.dll, gdi.dll), extensia este opțională.

Dacă calea către fișier nu este specificată, atunci navigarea în director începe în următoarea secvență

  1. Director care conține fișierul EXE al programului;
  2. directorul curent;
  3. directorul de sistem Windows;
  4. directorul Windows;
  5. Variabila de mediu cale.

Iată o mică listă de DLL-uri standard Windows:

  • advapi.dll - protecție NT, registru și alte servicii avansate;
  • comdlg.dll - casete de dialog standard;
  • gdi.dll - interfața dispozitivului grafic;
  • kernel32.dll - memorie, discuri, procese, resurse;
  • mpr.dll - rețele;
  • netapi32.dll - bibliotecă API de rețea;
  • shell32.dll - Windows shell, drag-and-drop, selectare pictogramă;
  • user32.dll - interfata utilizator - ferestre, meniuri, linii, mesaje;
  • version.dll - controlul versiunilor;
  • winmm.dll - multimedia, sunet, joystick-uri, cronometre;
  • winspoll.dll - manager de imprimare.

Majoritatea procedurilor DLL sunt documentate folosind notația limbajului de programare C și C++. Pentru a converti cu succes o funcție API într-o comandă Declare, trebuie să înțelegeți mecanismul de transmitere a argumentelor. Argumentele sunt de obicei transmise după valoare. În acest caz, cuvântul cheie ByVal este plasat înaintea numelui argumentului. Dacă argumentul este transmis prin referință, ByRef este setat.

Iată cea mai mică listă de funcții care sunt utilizate în Visual Basic:

  • BitBlt - copiază o imagine de la un hDC la altul;
  • FindWindow - găsește mânerul ferestrei cu Legenda specificată;
  • GetCursorPos - returnează poziţia curentă a cursorului mouse-ului (la nivel global);
  • GetDriveType - returnează tipul de unitate;
  • GetForegroundWindow - returnează mânerul ferestrei active;
  • SetCursorPos - setează o nouă poziție a cursorului mouse-ului;
  • SetVolumeLabel - schimbă eticheta discului;
  • SetWindowPos - setează poziția ferestrei cu un anumit Mâner (puteți folosi și această funcție pentru a face ca fereastra să fie deasupra tuturor;
  • ShellExecute - rulează aplicația asociată cu extensia care are fișierul specificat (poate rula doar aplicația specificată);
  • ShowCursor - ascunde sau afișează cursorul mouse-ului pe ecran.

Exemple de registru

De asemenea, atunci când programați în Visual Basic și în alte limbi, există o problemă când trebuie să utilizați registrul Windows, dar cu ajutorul funcțiilor API acest lucru este ușor de făcut, de exemplu:

Pentru a citi un parametru șir, utilizați funcția GetRegString

Exemplu:

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

Pentru a citi un parametru DWORD GetRegDWord

Exemplu:

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

SetRegString este folosit pentru a scrie un parametru șir

Exemplu:

SetRegString HKEY_LOCAL_MACHINE, _ „Software\test”, „MyProgram”, „Options”

Dacă cheia sau parametrul nu a fost creat, atunci acestea vor fi create, dacă cheia sau parametrul există deja, atunci noile valori le vor suprascrie pe cele vechi.

Pentru a scrie un parametru DWORD, utilizați SetRegDWord

Exemplu:

SetRegDWord HKEY_LOCAL_MACHINE, _ „Software\test”, „MyProgram”, „555”

Pentru a șterge o cheie din registry, utilizați funcția DeleteRegKey.

Exemplu:

DeleteRegKey HKEY_LOCAL_MACHINE, „Software”, „test”, True

Al doilea parametru - cheia părinte
Al treilea parametru este True dacă este necesară confirmarea pentru ștergere sau False dacă nu este necesară confirmarea.

Pentru a șterge un parametru din registry, utilizați funcția DeleteRegValue

Exemplu:

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

De fapt, posibilitățile funcțiilor API din sistemul de operare Windows sunt aproape nelimitate. Să terminăm această revizuire a acestei caracteristici Visual Basic și să scriem, în sfârșit, un mic program folosind funcțiile API.

Acest program afișează pur și simplu un mesaj pe ecran, lipiți următorul cod:

Private Declare Funcție BeginPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Funcție EndPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Funcția PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Funcție SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Sub Form_Load() Const TEXT = "Ați folosit API-ul" 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.Wid)th 2 , (Screen.Height - Height) / 2 End Sub

Am folosit 4 funcții aici (BeginPath, EndPath, PathToRegion, SetWindowRgn), care se află în două biblioteci dll (gdi32, user32).

Asta este tot pentru acum!

Prima versiune de Android a apărut în octombrie 2008 - acum doar 4 ani, ceea ce nu este prea mult pentru un sistem de operare. În acest timp, mai mult de două duzini de actualizări au fost deja lansate. Partea principală a actualizărilor a inclus elemente noi software interfata ( API) pe care aplicațiile le-ar putea folosi pentru nevoile lor. Pentru ca cutare sau cutare versiune de Android să știe dacă poate satisface cererile de program ale unei anumite aplicații, a fost introdusă numerotarea interfețelor de programare. Numărul care caracterizează versiunea interfeței a fost încorporat în aplicația însăși, iar sistemul l-a folosit pentru a determina compatibilitatea acestei aplicații cu ea însăși. Acest număr a fost numit „nivel API” (nivel API). În total, au fost deja acumulate 17 niveluri, fiecare dintre acestea ulterioare incluzând toate funcțiile celui precedent și adăugat altele noi.

Pentru a scrie o aplicație, împreună cu un sistem de programare, pe un computer este instalat un SDK ( kit de dezvoltare software) este un set de instrumente de dezvoltare, a căror parte principală este biblioteca de clase a nivelului API corespunzător. Fiecare nivel API are propria sa bibliotecă, ale cărei funcții sunt utilizate de aplicație. Dacă luăm o bibliotecă de primul nivel API pentru a ne dezvolta aplicația, atunci nu vom pune la dispoziție funcțiile care au apărut ulterior. Dacă luăm biblioteca de ultimul nivel, riscăm să facem aplicația noastră incompatibilă cu versiunile mai vechi de Android dacă folosim brusc o funcție care nu era suportată înainte. Deci, cum alegi un strat API?

În aplicația noastră, trebuie să instalăm două niveluri API (există și un al treilea, dar de fapt a dispărut ca fiind inutil). Primul este nivelul minim API la care aplicația va putea rula, iar al doilea este nivelul API țintă, adică nivelul API la care este compilată aplicația. La publicarea unei aplicații, acest nivel ar trebui să fie cât mai accesibil în acel moment, astfel încât în ​​noile versiuni de Android să nu funcționeze în modul de compatibilitate, ci să folosească toate micile lucruri ale noii versiuni a sistemului de operare (nu depinde de autorul programului însuși). În momentul scrierii programului, acesta ar trebui să fie compilat la cel mai scăzut nivel API posibil, pentru a nu folosi funcții noi.

Ca rezultat, obținem următoarea metodologie de dezvoltare a aplicațiilor:

  1. Studiem publicul țintă - ce versiune de Android este instalată pe smartphone-urile lor. Dacă scriem pentru toată lumea, atunci va fi util să facem cunoștință cu programele actualizate în mod constant pentru utilizarea uneia sau a altei versiuni a sistemului pe dispozitive mobile: http://developer.android.com/intl/ru/about/dashboards/ index.html . Astăzi vedem că cea mai mare parte se află deja la nivelul API 10, dar există și piese destul de mari la nivelurile 7 și 8. Puteți vedea diferențele de niveluri aici (http://developer.android.com/intl/ru /guide /topics/manifest/uses-sdk-element.html) făcând clic pe numărul API corespunzător din tabel.
  2. Dacă nu vrem să pierdem aproximativ 10% din audiență, alegem nivelul minim API 7. În caz contrar, putem alege nivelul API 10, care este folosit de aproape jumătate dintre utilizatori în prezent. Instalați SDK-ul corespunzător nivelului minim selectat.
  3. Setăm nivelul țintă egal cu minimul, scriem și compilăm programul pentru acesta. Lansăm și testăm pe un emulator de smartphone cu API-ul de nivel minim instalat.
  4. După ce scriem și depanăm programul, creștem nivelul țintă cu unul, compilăm programul sub SDK-ul noului nivel țintă și îl testăm într-un nou emulator de smartphone cu nivelul corespunzător. În continuare, continuăm să creștem nivelul API țintă, să compilam și să testăm programul până ajungem la cel mai înalt nivel API.
  5. Totul, acum poți publica programul. Când este lansată o nouă versiune de Android cu un nou nivel API, programul nostru va fi inclus în modul de compatibilitate și va funcționa ca înainte. Pentru ca programul să funcționeze direct, și nu în modul de compatibilitate, luăm proiectul nostru, descarcăm noul SDK al ultimului nivel API și compilăm aplicația sub acesta. Acum aplicația va rula pe noul sistem ca de obicei și poate arăta puțin diferit, în tradiția noii versiuni a sistemului de operare. În același timp, pe versiunile mai vechi ale sistemului, aplicația rămâne aceeași ca a fost.
În cele din urmă, reflectând, m-am hotărât pentru mine la nivelul API 7. În plus, atunci când folosesc unele dintre caracteristicile noi care au apărut în API-uri mult mai ulterioare (de exemplu, fragmente), mediul de dezvoltare însuși mi-a sugerat să folosesc o compatibilitate specială. pachet și l-a adăugat în proiect. Drept urmare, am putut folosi unele dintre noile funcții din noile API-uri din cea veche. Totuși, acesta este un alt subiect.

Top articole similare