API սահմանում. Հավելվածի ծրագրավորման ինտերֆեյս

Տուն / Բրաուզերներ

Sandbox

ժամկետային զինծառայողՆոյեմբերի 26, 2012, ժամը 13:59

Ինչ է API-ն

  • պահարան *

Ողջույններ:
Այս հոդվածում մենք կանդրադառնանք, թե ինչ է API-ն, որտեղ, ինչպես և ինչի համար է այն օգտագործվում: Մենք նաև կդիտարկենք, թե ինչպես կարող է API-ն օգտագործվել ձեր վեբ մշակումների մեջ և ինչպես այն կարող է պարզեցնել վեբ ծրագրավորողի կյանքը:

Այսպիսով, եկեք սկսենք սահմանումից: API (Application Programming Interface) ծրագրավորման ինտերֆեյս է, հավելվածներ ստեղծելու ինտերֆեյս։ Ավելի մանրամասն պարզ լեզվով, ապա API-ն պատրաստի կոդ է՝ ծրագրավորողի կյանքը հեշտացնելու համար։ API-ն ստեղծվել է այնպես, որ ծրագրավորողը կարողանա իրականում հեշտացնել հավելված գրելու խնդիրը՝ օգտագործելով պատրաստի կոդը (օրինակ՝ ֆունկցիաները)։ Հայտնի jQuery-ն, որը գրված է JavaScript-ով, նույնպես API-ի տեսակ է։ Եթե ​​կոնկրետ նայենք այս օրինակին, jQuery-ն շատ ավելի հեշտ է դարձնում կոդ գրելը: Այն, ինչ կարելի է անել, օգտագործելով սովորական JavaScript գործիքները 30 տողերում, գրված է 5-6-ում՝ օգտագործելով jQuery: Եթե ​​ընդհանուր առմամբ նայենք API-ներին, ապա կարող ենք գտնել բազմաթիվ ծառայություններ, որոնք ապահովում են զարգացման լուծումներ: Այսօր ամենահայտնին code.google.com ծառայությունն է, որն ապահովում է մոտ հիսուն տարբեր API: Սա ներառում է Android հավելվածներ ստեղծելու ինտերֆեյս, AJAX-ի հետ աշխատելու տարբեր API-ներ և տարբեր հավելվածների API-ներ, որոնք կարող են հեշտությամբ հարմարեցվել ըստ ձեր ցանկության:

Ի վերջո, իմաստ ունի՞ ինքներդ գրել կոդը: Ինչու՞ աշխատել արդեն ստեղծվածի վրա։ Ինչ-որ իմաստ կա՞ հանձնվել: անվճար լուծումներ(և ըստ էության, սկսած անվճար օգնություն) վեբ մշակման մեջ? Եթե ​​այս բոլոր հարցերին պատասխանել եք «ՈՉ», ապա համարեք, որ հասկանում եք API-ի էությունը:

Բայց ես նաև ուզում եմ վերապահում անել. Սկսնակ ծրագրավորողները չպետք է օգտագործեն կիսապատրաստ լուծումներ, քանի որ նրանք չեն դիմանա ապագայի հետ իրական մարտահրավեր. Հետևաբար, եթե դուք սկսնակ վեբ ծրագրավորող եք, ապա մի օգտագործեք կիսաֆաբրիկատներ: Սովորիր մտածել սեփական գլխով, կառուցիր տարբեր ալգորիթմներ՝ հասկանալու ծրագրավորման էությունը։ Ես նաև ասում եմ, արդեն դիմելով բոլորին, որ API-ն չէ պատրաստի լուծումներ, սա միջավայր է, ինտերֆեյս ձեր նախագծերը ստեղծելու համար։ Խանութից սառեցված կոտլետներ չե՞ք ուտում, չէ՞։ Դուք նախ տապակում եք դրանք, չէ՞: Այս անալոգիան շատ հստակ պատկերում է API-ի էությունը:

Ընդհանուր առմամբ, ես ձեզ ասացի, թե ինչ է API-ն, որտեղ և ինչպես է այն օգտագործվում, և ամենակարևորը՝ ինչու: Մաղթում եմ ձեզ հաճելի սովորել վեբ ծրագրավորումը և հասկանալ դրա ավելի ու ավելի խորությունները:

Պիտակներ՝ api

Այս հոդվածը մեկնաբանության ենթակա չէ, քանի որ դրա հեղինակը դեռ համայնքի լիիրավ անդամ չէ։ Դուք կկարողանաք կապվել հեղինակի հետ միայն այն ստանալուց հետո

Վաղ թե ուշ ցանկացած ծրագրավորողի բախվում է այնպիսի հայեցակարգ, ինչպիսին API. Այնուամենայնիվ, երբ նման հանդիպում է տեղի ունենում, ոչ բոլորը գիտեն, թե դա ինչ է, ինչու է դա անհրաժեշտ և ինչպես օգտագործել այն: Եվ այս հոդվածում ես պատրաստվում եմ լրացնել ձեզանից ոմանց գիտելիքների այս բացը, ինչպես նաև օրինակ բերել իմ պրակտիկայից։

API (հավելվածի ծրագրավորման ինտերֆեյս) - Սա հավելվածի ծրագրավորման ինտերֆեյս. Ավելի պարզ ասած, սա տարբեր գործառույթների, հաստատունների, դասերի և հարցումների ձևաչափերի մի շարք է, որոնք կարող են օգտագործվել այլ ծրագրերում:

Կարելի է համարել, որ API- Սա մի օբյեկտ է, որի իրականացումը մենք չգիտենք, այնուամենայնիվ, մենք կարող ենք օգտագործել այն: Օրինակ՝ համակարգիչը այն օբյեկտն է, որի իրականացումը շատ քչերը գիտեն, սակայն գրեթե բոլորը կարող են օգտագործել այն որոշ գործողություններ կատարելու համար՝ դիտել տեսանյութեր, շրջել ինտերնետում, տպել տեքստ և այլն։ Քչերը գիտեն, թե ինչպես է այդ ամենն աշխատում, բայց գրեթե բոլորը կարող են դա անել:

Օրինակ APIէ Windows API, OpenGL API, Direct3D APIեւ այլն։

Օրինակ, ոչ վաղ անցյալում ես նույնպես ուղղակիորեն հանդիպեցի API. Ես գրանցվել եմ փոստային ցուցակի ծառայության համար» SmartResponder.ru« և սկսեց տեղեկագիր, որին մարդիկ սկսեցին բաժանորդագրվել: Առաջադրանքը հետևյալն էր. բաժանորդագրվելուց հետո 24 ժամվա ընթացքում մարդը կարող է զեղչով գնել իմ վճարովի վիդեո դասընթացը: Քանի որ բաժանորդների մասին ամբողջ տեղեկատվությունը պահվում է սերվերում»: SmartResponder.ru», ապա նորմալ մուտք (օրինակ, միջոցով DB) Ես մուտք չունեի այս տվյալներին, բայց անհրաժեշտ էր դրանք իրականացնել: Բարեբախտաբար, « SmartResponder.ru«Ունեցեք ձեր սեփականը API, որը ես օգտագործել եմ։

Ես գտա նրանց մեջ APIհարցումի ձևաչափը՝ արդյունքում բաժանորդագրության ամսաթիվը ստանալու համար: Հետագա միջոցով CURLԵս ուղարկեցի համապատասխան հարցումը և ստացա պահանջվող բաժանորդագրության ամսաթիվը կոնկրետի համար էլեկտրոնային փոստի հասցեները. Հաջորդը ստանդարտ մշակումն է և արդյունքի ելքը:

Դուք հավանաբար տեսել եք «API» տերմինը: Օպերացիոն համակարգի, վեբ բրաուզերի և հավելվածների թարմացումները հաճախ հայտարարում են մշակողների համար նոր API-ների մասին: Բայց ինչ է API-ն:

Հավելվածի ծրագրավորման ինտերֆեյս

API տերմինը հապավում է և նշանակում է Application Programming Interface:

API-ն նման է ճաշացանկի ռեստորանում: Ճաշացանկը պարունակում է ճաշատեսակների ցանկ, որոնք կարող եք պատվիրել, ինչպես նաև յուրաքանչյուր ուտեստի նկարագրություն: Երբ դուք նշում եք, թե որ ցանկի տարրերն եք ուզում, ռեստորանի խոհանոցը կատարում է աշխատանքը և տրամադրում է ձեզ պատրաստի ուտեստները: Դուք հստակ չգիտեք, թե ինչպես է ռեստորանը պատրաստում այս կերակուրը, և դա ձեզ հարկավոր չէ:

Նմանապես, API-ն տրամադրում է բազմաթիվ գործողություններ, որոնք կարող են օգտագործել մշակողները, ինչպես նաև նկարագրություն, թե ինչ են նրանք անում: Մշակողը կարիք չունի իմանալու, թե, օրինակ, ինչպես է ստեղծվում օպերացիոն համակարգը և ցուցադրվում է Save As երկխոսության տուփը: Նրանք պարզապես պետք է իմանան, որ այն հասանելի է հավելվածում օգտագործելու համար։

Սա կատարյալ փոխաբերություն չէ, քանի որ մշակողները կարող են ստիպված լինել իրենց սեփական API-ի տվյալները տրամադրել արդյունքներ ստանալու համար, ուստի, հավանաբար, այն ավելի շատ նման է շքեղ ռեստորանի, որտեղ դուք կարող եք տրամադրել ձեր սեփական բաղադրիչները խոհանոցի համար աշխատելու համար:

API-ները թույլ են տալիս ծրագրավորողներին խնայել ժամանակը՝ օգտագործելով հարթակի ներդրումը կարևոր աշխատանք կատարելու համար: Սա օգնում է նվազեցնել մշակվող կոդի քանակը, ինչպես նաև օգնում է ստեղծել հետևողականություն նույն հարթակում գտնվող հավելվածների միջև: API-ները կարող են վերահսկել մուտքը դեպի ապարատային և ծրագրային ռեսուրսներ:

API-ները հեշտացնում են ծրագրավորողների կյանքը

Ենթադրենք, դուք ցանկանում եք մշակել iPhone հավելված: Apple iOS օպերացիոն համակարգը ապահովում է մեծ թվով API-ները նման են ցանկացած այլ օպերացիոն համակարգի՝ դա ձեզ համար հեշտացնելու համար:

Օրինակ, եթե ցանկանում եք ներդնել վեբ զննարկիչ՝ մեկ կամ մի քանի վեբ էջ ցուցադրելու համար, դուք ստիպված չեք լինի զրոյից ծրագրավորել ձեր սեփական վեբ բրաուզերը միայն ձեր հավելվածի համար: Դուք
Դուք կարող եք օգտագործել WKWebView API-ն՝ ձեր հավելվածում WebKit (Safari) վեբ զննարկիչը տեղադրելու համար:

Եթե ​​ցանկանում եք լուսանկարել կամ տեսանյութեր վերցնել iPhone տեսախցիկներՁեզ հարկավոր չէ գրել ձեր սեփական տեսախցիկի ինտերֆեյսը: Դուք կարող եք օգտագործել Camera API-ն՝ iPhone-ի տեսախցիկը ձեր հավելվածում տեղադրելու համար: Եթե ​​API-ն գոյություն չունենար, հավելվածների մշակողները պետք է ստեղծեին իրենց տեսախցիկի ծրագրակազմը և մեկնաբանեին մուտքերը ապարատայինտեսախցիկներ. Բայց վիրահատարանի մշակողները Apple համակարգերարել է այս ամբողջ ծանր աշխատանքը, որպեսզի մշակողները կարողանան պարզապես օգտագործել տեսախցիկի API-ն՝ տեսախցիկը ներկառուցելու համար, այնուհետև շարունակել գրել իրենց հավելվածը: Եվ երբ Apple-ը բարելավում է տեսախցիկի API-ն, այն օգտագործող բոլոր հավելվածներն ավտոմատ կերպով կօգտվեն այդ բարելավումից:

Սա վերաբերում է բոլոր հարթակներին: Օրինակ, ցանկանում եք Windows-ում երկխոսության տուփ ստեղծել: Դրա համար կա API: Ցանկանու՞մ եք աջակցել մատնահետքի նույնականացմանը Android-ում: Դրա համար կա API, այնպես որ դուք ստիպված չեք լինի փորձարկել յուրաքանչյուր մատնահետքի սենսոր Android-ի յուրաքանչյուր արտադրողից: Մշակողները ստիպված չեն նորից ու նորից հայտնագործել անիվը:

API-ները վերահսկում են ռեսուրսների հասանելիությունը

API-ներն օգտագործվում են նաև ապարատային սարքերի և գործառույթների հասանելիությունը վերահսկելու համար ծրագրային ապահովում, որը հավելվածը կարող է օգտագործելու թույլտվություն չունենա: Ահա թե ինչու API-ները հաճախ մեծ դեր են խաղում անվտանգության հարցում:

Օրինակ, եթե դուք երբևէ այցելել եք կայք և ձեր բրաուզերում հաղորդագրություն եք տեսել, որ կայքը խնդրում է ձեր ճշգրիտ գտնվելու վայրը, ապա այդ կայքը փորձում է օգտագործել աշխարհագրական API-ն ձեր վեբ բրաուզերում: Վեբ բրաուզերները տրամադրում են API-ներ, որպեսզի հեշտացնեն վեբ մշակողների մուտքը ձեր գտնվելու վայրը Wi-Fi ցանցերձեր ֆիզիկական գտնվելու վայրը գտնելու համար:

Այնուամենայնիվ, բրաուզերներն այս տեղեկատվությունը տրամադրում են նաև API-ների միջոցով, քանի որ դրանց հասանելիությունը կարող է վերահսկվել: Երբ վեբկայքը ցանկանում է մուտք գործել ձեր ճշգրիտ գտնվելու վայրը, այն ստանալու միակ միջոցը տեղադրության API-ն է: Եվ, երբ կայքը փորձում է օգտագործել այն, դուք՝ օգտատերը, կարող եք թույլ տալ կամ մերժել հարցումը: Սարքավորումների ռեսուրսները, ինչպիսիք են GPS սենսորը, կարող են մուտք գործել միայն API-ի միջոցով, այնպես որ զննարկիչը կարող է վերահսկել մուտքը դեպի ապարատ և սահմանափակել հավելվածների անելիքը:

Նույն սկզբունքը կիրառվում է ժամանակակից բջջային օպերացիոն համակարգերի համար, ինչպիսիք են iOS-ը և Android-ը, որտեղ բջջային հավելվածներունեն թույլտվություններ, որոնք կարող են կիրառվել՝ վերահսկելով մուտքը դեպի API: Օրինակ, եթե մշակողը փորձի տեսախցիկ մուտք գործել տեսախցիկի API-ի միջոցով, դուք կարող եք մերժել թույլտվության հարցումը, և հավելվածը մուտք չի ունենա ձեր սարքի տեսախցիկին:

Թույլտվություններ օգտագործող ֆայլային համակարգերը, ինչպիսիք են Windows-ը, Mac-ը և Linux-ը, ունեն այդ թույլտվությունները, որոնք պարտադրված են API-ի կողմից: ֆայլային համակարգ. Տիպիկ հավելվածը ուղղակի մուտք չունի հում ֆիզիկական կոշտ սկավառակի վրա: Փոխարենը, հավելվածը պետք է մուտք գործի ֆայլեր API-ի միջոցով:

API-ները օգտագործվում են ծառայությունների միջև հաղորդակցության համար

API-ներն օգտագործվում են նաև այլ պատճառներով։ Օրինակ, եթե դուք երբևէ տեսել եք Google Քարտեզների օբյեկտ՝ ներկառուցված վեբկայքում, այդ կայքը օգտագործում է Google Maps API՝ այդ քարտեզը տեղադրելու համար: Google-ը նման API-ներ է տրամադրում վեբ ծրագրավորողների համար, որոնք այնուհետև կարող են օգտագործել API-ները հավաքագրելու համար բարդ օբյեկտներհենց ձեր կայքում: Եթե ​​այդպիսի API-ներ չկան, ծրագրավորողները կարող են ստիպված լինել ստեղծել իրենց սեփական քարտեզները և տրամադրել իրենց քարտեզի տվյալները՝ վեբկայքում փոքր ինտերակտիվ քարտեզ տեղադրելու համար:

Եվ քանի որ դա API է, Google-ը կարող է վերահսկել մուտքը Google Քարտեզներերրորդ կողմի կայքերում, ապահովելով, որ նրանք օգտագործում են այն հետևողական ձևով, այլ ոչ թե փորձում են պատահականորեն իրականացնել այն շրջանակը, որը ցույց է տալիս կայքը Google Քարտեզներ, Օրինակ.

Սա վերաբերում է բազմաթիվ տարբեր առցանց ծառայություններին: Կան API-ներ՝ տեքստի թարգմանություն պահանջելու համար Google Translateկամ ցուցադրելով Facebook-ի մեկնաբանությունները կամ թվիթերը Twitter-ից կայքում:

OAuth ստանդարտը նաև սահմանում է մի շարք API-ներ, որոնք թույլ են տալիս մուտք գործել կայք այլ ծառայության միջոցով, օրինակ՝ օգտագործելով ձեր մուտքի հավատարմագրերը: ֆեյսբուքյան գրառումները, Google-ը կամ Twitter-ը՝ նոր կայք մուտք գործելու համար՝ առանց նորը ստեղծելու հաշիվօգտվող միայն այս կայքի համար: API-ները ստանդարտ պայմանագրեր են, որոնք սահմանում են, թե ինչպես են ծրագրավորողները փոխազդում ծառայության հետ և արտադրանքի տեսակը, որը մշակողները պետք է ակնկալեն ստանալ:

Եթե ​​կարդացել եք այս հոդվածը, ավելի լավ պատկերացում կունենաք, թե ինչ է իրենից ներկայացնում API-ը: Ի վերջո, ձեզ հարկավոր չէ իմանալ, թե ինչ է API-ն, եթե դուք մշակող չեք: Բայց, եթե տեսնում եք, որ ծրագրային հարթակը կամ ծառայությունը նոր API-ներ է ավելացրել տարբեր սարքավորումների կամ ծառայությունների համար, ծրագրավորողների համար ավելի հեշտ կլինի օգտագործել նման հնարավորությունները:

Այս կարճ ժամկետը հայտնի է բոլորին, ովքեր զարգացման փորձ ունեն: Բայց ոչ բոլորն են հասկանում, թե դա կոնկրետ ինչ է նշանակում և ինչու է դա անհրաժեշտ: Մշակող Պյոտր Գազարովխոսեց API-ի մասին պարզ բառերովձեր բլոգում:

API հապավումը նշանակում է «Application Programming Interface» ծրագրային ինտերֆեյսհավելվածներ): Խոշոր ընկերությունների մեծ մասը որոշակի փուլում մշակում են API-ներ հաճախորդների կամ նրանց համար ներքին օգտագործումը. Հասկանալու համար, թե ինչպես և ինչպես են API-ներն օգտագործվում զարգացման և բիզնեսի մեջ, նախ պետք է հասկանալ, թե ինչպես է աշխատում Համաշխարհային ցանցը:

Համաշխարհային ցանց և հեռավոր սերվերներ

WWW-ն կարելի է համարել որպես փոխկապակցված սերվերների հսկայական ցանց, որի վրա պահվում է յուրաքանչյուր էջ: Սովորական նոութբուքը կարող է վերածվել սերվերի, որը կարող է սպասարկել մի ամբողջ կայք ցանցում, և տեղական սերվերներմշակողները այն օգտագործում են կայքեր ստեղծելու համար, նախքան դրանք հանրությանը հասանելի դարձնելը:

Երբ մուտքագրվում է բրաուզերի հասցեի տող www.facebook.comՀամապատասխան հարցումն ուղարկվում է Facebook-ի հեռավոր սերվերին։ Երբ զննարկիչը ստանում է պատասխանը, այն մեկնաբանում է կոդը և ցուցադրում էջը:

Ամեն անգամ, երբ օգտատերը այցելում է որևէ էջ ինտերնետում, նա շփվում է հեռավոր սերվերի API-ի հետ: API-ն սերվերի բաղադրիչ մասն է, որը ստանում է հարցումներ և ուղարկում պատասխաններ:

API՝ որպես հաճախորդների սպասարկման միջոց

Շատ ընկերություններ առաջարկում են API-ներ որպես պատրաստի արտադրանք: Օրինակ, Weather Underground-ը վաճառում է իր եղանակային տվյալների API-ի հասանելիությունը:

Օգտագործման սցենար.Փոքր ընկերության կայքում կա հաճախորդների համար հանդիպումների ձևաթուղթ: Ընկերությունը ցանկանում է ինտեգրել Google Calendar-ը, որպեսզի հաճախորդներին հնարավորություն տա ավտոմատ կերպով ստեղծել իրադարձություն և մուտքագրել մանրամասներ առաջիկա հանդիպման մասին:

API հավելված.Նպատակն այն է, որ կայքի սերվերը ուղղակիորեն կապվի Google սերվերի հետ՝ խնդրելով ստեղծել իրադարձություն՝ նշված մանրամասներով, ստանալ Google-ի պատասխանը, մշակել այն և ուղարկել համապատասխան տեղեկատվությունը զննարկիչին, օրինակ՝ հաղորդագրություն՝ հաստատման խնդրանքով: օգտագործողը.

Որպես այլընտրանք, զննարկիչը կարող է հարցում կատարել API-ին Google սերվերներ, շրջանցելով ընկերության սերվերը։

Ինչպե՞ս է Google Calendar API-ն տարբերվում ցանցի ցանկացած այլ հեռավոր սերվերի API-ից:

Տեխնիկապես տարբերությունը հարցման և պատասխանի ձևաչափի մեջ է։ Ամբողջական վեբ էջ ստեղծելու համար զննարկիչը պատասխան է ակնկալում HTML նշագրման լեզվով, մինչդեռ Google Calendar API-ն պարզապես կվերադարձնի տվյալները JSON ձևաչափով:

Եթե ​​API-ին հարցումը կատարվում է ընկերության կայքի սերվերի կողմից, ապա դա հաճախորդն է (ինչպես բրաուզերը հաճախորդ է, երբ օգտագործողը բացում է կայքը):

API-ի շնորհիվ օգտատերը հնարավորություն է ստանում որևէ գործողություն կատարել՝ առանց ընկերության կայքից դուրս գալու:

Ժամանակակից կայքերից շատերն օգտագործում են առնվազն մի քանի երրորդ կողմի API: Շատ առաջադրանքներ արդեն ունեն պատրաստի լուծումներ, որոնք առաջարկվում են երրորդ կողմի մշակողների կողմից, լինի դա գրադարան, թե ծառայություն: Հաճախ ավելի հեշտ և հուսալի է պատրաստի լուծման դիմելը։

Շատ մշակողներ հավելվածը տարածում են մի քանի սերվերների վրա, որոնք փոխազդում են միմյանց հետ՝ օգտագործելով API-ը: Սերվերները, որոնք կատարում են հիմնական հավելվածի սերվերի օժանդակ գործառույթ, կոչվում են միկրոսերվիսներ:

Այսպիսով, երբ ընկերությունն իր օգտատերերին առաջարկում է API, դա պարզապես նշանակում է, որ նա ստեղծել է հատուկ URL-ների շարք, որոնք որպես պատասխան վերադարձնում են միայն տվյալներ:

Նման հարցումները հաճախ կարող են ուղարկվել բրաուզերի միջոցով: Քանի որ HTTP տվյալների փոխանցումը տեղի է ունենում տեքստային ձևով, զննարկիչը միշտ կկարողանա ցուցադրել պատասխանը: Օրինակ, բրաուզերի միջոցով դուք կարող եք ուղղակիորեն մուտք գործել GitHub API (https://api.github.com/users/petrgazarov), առանց մուտքի նշանի և ստանալ այս պատասխանը JSON ձևաչափով.

Բրաուզերը հիանալի կերպով ցուցադրում է JSON պատասխանը, որը կարող է տեղադրվել կոդի մեջ: Նման տեքստից տվյալներ հանելը բավական հեշտ է՝ ձեր հայեցողությամբ օգտագործելու համար:

API-ի ևս մի քանի օրինակ

«Դիմում» բառը կարող է տարբեր իմաստներ ունենալ։ API-ի համատեքստում սա նշանակում է.

  • ծրագրային ապահովման մի կտոր հատուկ գործառույթով,
  • ամբողջ սերվերը, ամբողջ հավելվածը կամ պարզապես հավելվածի առանձին մասը:

Ծրագրաշարի ցանկացած կտոր, որը կարող է հստակորեն տարբերվել շրջակա միջավայրից, կարող է փոխարինել «A» տառը անգլերեն հապավումով, ինչպես նաև կարող է ունենալ որոշակի API: Օրինակ, երբ մշակողը ներդնում է երրորդ կողմի գրադարանը կոդի մեջ, այն դառնում է ամբողջ հավելվածի մաս: Որպես ինքնուրույն ծրագրաշար, գրադարանը կունենա ինչ-որ API, որը թույլ է տալիս համագործակցել հավելվածի մնացած կոդի հետ:

Օբյեկտ-կողմնորոշված ​​դիզայնում կոդը ներկայացված է որպես օբյեկտների հավաքածու: Հավելվածում կարող են լինել հարյուրավոր նման առարկաներ, որոնք փոխազդում են միմյանց հետ: Նրանցից յուրաքանչյուրն ունի իր սեփական API-ն՝ հավաքածու հանրայինհավելվածի այլ օբյեկտների հետ փոխազդելու հատկություններ և մեթոդներ: Օբյեկտները կարող են ունենալ նաև մասնավոր, ներքին տրամաբանություն, որը թաքնված է միջավայրից և API չէ։

Ժամանակն է խոսել այնպիսի հայեցակարգի մասին, ինչպիսին API-ն գործում է Visual Basic լեզվով. Ինչո՞ւ են այս գործառույթները կարևոր Visual Basic-ում: Եկեք հասկանանք, առաջին հերթին, երբ սկսեք ծրագրավորել Visual Basic-ում, անմիջապես կհասկանաք, որ այս գործառույթներից օգտվելով կարող եք շատ լուրջ ծրագրեր գրել, և երկրորդ, դուք պարզապես չեք կարող շատ բան անել առանց API գործառույթների օգտագործման, օրինակ՝ գրեթե ամեն ինչ, ինչ կապված է օգտագործման հետ։ Windows օպերացիոն համակարգ ( օրինակ՝ պարզել օգտվողի անունը, կոշտ սկավառակի տարածքը և այլն:).

Բայց որպեսզի սկսեք կիրառել այս գործառույթները գործնականում, դուք պետք է իմանաք, թե որոնք են դրանք, եկեք նախ խոսենք դրա մասին:

Տեսություն Visual Basic API գործառույթների վերաբերյալ

API Application Programming Interface-ի հապավումն է ( հավելվածի ծրագրավորման ինտերֆեյս) Այլ կերպ ասած, API-ն գործառույթների մի շարք է, որոնք օպերացիոն համակարգն ինքն է տալիս ծրագրավորողին՝ օգտագործելու իրենց ծրագրերում: Օգտագործելով API-ն՝ ծրագրավորողները կարող են հեշտությամբ կյանքի կոչել իրենց գաղափարները:

API ֆունկցիաները կարող են կանչվել Visual Basic-ից՝ այնպիսի առաջադրանքներ կատարելու համար, որոնց համար ստանդարտը բավարար չէ ծրագրի կոդը Visual Basic. Օրինակ՝ ստանդարտ միջոցներ Visual Basic-ը թույլ չի տալիս անջատել համակարգիչը կամ վերագործարկել այն: Այնուամենայնիվ, այս ամենը կարելի է հեշտությամբ անել՝ զանգահարելով համապատասխան API ֆունկցիան։

Գրեթե բոլոր գործառույթները, որոնք տեղակայված են Windows-ում, գտնվում են DLL-ների ներսում ( Դինամիկ կապի գրադարան) Բոլոր dll ֆայլերը գտնվում են համակարգում Windows թղթապանակ. Կան ավելի քան 1000 API գործառույթներ, որոնք բաժանվում են չորս հիմնական կատեգորիաների:

  • Հավելվածների հետ աշխատել - հավելվածների գործարկում և փակում, մենյուի հրամանների մշակում, պատուհանների տեղափոխում և չափափոխում;
  • Գրաֆիկա - պատկերների ստեղծում;
  • Համակարգի տեղեկատվություն - ընթացիկ սկավառակի նույնականացում, հիշողության չափ, ընթացիկ օգտվողի անունը և այլն;
  • Ռեեստրի հետ աշխատելը - Windows ռեեստրի մանիպուլյացիա:

Օգտագործելով API գործառույթները գործնականում

Այժմ եկեք անցնենք այս գործառույթները գործնականում օգտագործելուն: Visual Basic-ում կանչված API ֆունկցիաները նախ պետք է հայտարարվեն: Գովազդելիս նշվում է DLL անունըև գործառույթներ, ինչպես նաև տեղեկություններ փաստարկների քանակի և տեսակի մասին:

DLL-ի ընթացակարգերը հայտարարվում են «Declare» հրամանի միջոցով՝ ձևի մոդուլի կամ ստանդարտ մոդուլի «Ընդհանուր հայտարարագրեր» բաժնում.

Հայտարարել ֆունկցիայի անունը Lib «գրադարան» [([ _ փոփոխական [,ByVal,] փոփոխական ]...])] որպես տեսակ

Ստանդարտ մոդուլներում հայտնաբերված DLL ընթացակարգերը լռելյայնորեն հանրային են և կարող են կանչվել հավելվածի ցանկացած կետից: Ձևի մոդուլում հայտարարված ընթացակարգերը մասնավոր են և պետք է դրանց նախորդի Անձնական բանալի բառը:

Lib բաժինը ձեզ ասում է, թե որտեղ պետք է նայել DLL ֆայլգործառույթը պարունակող: Երբ հղում եք կատարում Windows-ի հիմնական գրադարաններին (user32.dll, kernel32.dll, gdi.dll), ընդլայնումը ներառելու կարիք չկա:

Եթե ​​ֆայլի ուղին նշված չէ, ապա գրացուցակի զննումն սկսվում է հետևյալ հաջորդականությամբ

  1. Ծրագրի EXE ֆայլը պարունակող գրացուցակը;
  2. Ընթացիկ գրացուցակ;
  3. Windows համակարգի գրացուցակ;
  4. Windows տեղեկատու;
  5. Ուղու միջավայրի փոփոխական:

Ահա ստանդարտ Windows DLL-ների փոքր ցուցակ.

  • advapi.dll - NT պաշտպանություն, ռեեստր և այլ առաջադեմ ծառայություններ;
  • comdlg.dll - ստանդարտ երկխոսության տուփեր;
  • gdi.dll - գրաֆիկական սարքի ինտերֆեյս;
  • kernel32.dll - հիշողություն, սկավառակներ, գործընթացներ, ռեսուրսներ;
  • mpr.dll - ցանցեր;
  • netapi32.dll - ցանցային API գրադարան;
  • shell32.dll - Windows-ի պատյան, քաշել և թողնել, պատկերակի ընտրություն;
  • user32.dll - ինտերֆեյս - պատուհաններ, մենյու, տողեր, հաղորդագրություններ;
  • version.dll - տարբերակի վերահսկում;
  • winmm.dll - մուլտիմեդիա, ձայն, joysticks, ժմչփեր;
  • winspoll.dll - տպագիր մենեջեր:

DLL պրոցեդուրաների մեծ մասը փաստաթղթավորված է C և C++ ծրագրավորման լեզուների նշումներով: API ֆունկցիան Declare հրամանի հաջողությամբ փոխարկելու համար դուք պետք է հասկանաք փաստարկների փոխանցման մեխանիզմը: Սովորաբար փաստարկները փոխանցվում են ըստ արժեքի: Այս դեպքում ByVal բանալի բառը դրվում է արգումենտի անվան առաջ։ Եթե ​​փաստարկը փոխանցվում է հղումով, ապա սահմանվում է ByRef:

Ահա Visual Basic-ում օգտագործվող գործառույթների ամենափոքր ցանկը.

  • BitBlt - պատճենում է պատկերը մեկ hDC-ից մյուսը;
  • FindWindow - գտնում է պատուհանի բռնակը նշված վերնագրով;
  • GetCursorPos - վերադարձնում է մկնիկի կուրսորի ներկայիս դիրքը (գլոբալ);
  • GetDriveType - վերադարձնում է սկավառակի տեսակը;
  • GetForegroundWindow - վերադարձնում է ակտիվ պատուհանի Handle-ը;
  • SetCursorPos - սահմանում է մկնիկի կուրսորի նոր դիրքը;
  • SetVolumeLabel - փոխում է սկավառակի պիտակը;
  • SetWindowPos - սահմանում է պատուհանի դիրքը որոշակի բռնակով (կարող եք նաև օգտագործել այս գործառույթը՝ պատուհանը բոլոր մյուսների վերևում դարձնելու համար);
  • ShellExecute - գործարկում է ընդլայնման հետ կապված հավելվածը, որն ունի նշված ֆայլը(կարող է նաև պարզապես գործարկել նշված հավելվածը);
  • ShowCursor - թաքցնում կամ ցուցադրում է մկնիկի կուրսորը էկրանին:

Ռեեստրի հետ աշխատելու օրինակներ

Նաև Visual Basic-ում և այլ լեզուներով ծրագրավորելիս խնդիր է առաջանում, երբ անհրաժեշտ է օգտագործել Windows ռեեստր, բայց օգտագործելով API գործառույթները դա հեշտ է անել, օրինակ.

Լարի պարամետրը կարդալու համար օգտագործեք GetRegString ֆունկցիան

Օրինակ՝

Պղտոր փորձարկում Որպես լարային թեստ = GetRegString (HKEY_LOCAL_MACHINE, _ «Ծրագրաշար\Microsoft\DirectX», «Տարբերակ») Form1.Caption = փորձարկում

GetRegDWord DWORD պարամետրը կարդալու համար

Օրինակ՝

Dim test As Long test = GetRegDWord (HKEY_LOCAL_MACHINE, _ «Software\Microsoft\Internet Explorer\AboutURLs», «Home») Form1.Caption = փորձարկում

Լարի պարամետր գրելու համար օգտագործեք SetRegString

Օրինակ՝

SetRegString HKEY_LOCAL_MACHINE, _ «Software\test», «MyProgram», «Options»

Եթե ​​բանալին կամ պարամետրը չի ստեղծվել, ապա այն կստեղծվի, եթե բանալին կամ պարամետրն արդեն գոյություն ունի, ապա նոր արժեքները կգրվեն հինների վրա:

DWORD տեսակի պարամետր գրելու համար օգտագործեք SetRegDWord

Օրինակ՝

SetRegDWord HKEY_LOCAL_MACHINE, _ «Software\test», «MyProgram», «555»

Բանալին ռեեստրից հեռացնելու համար օգտագործեք DeleteRegKey ֆունկցիան

Օրինակ՝

DeleteRegKey HKEY_LOCAL_MACHINE, «Ծրագրաշար», «փորձարկում», Ճիշտ է

Երկրորդ պարամետր - Ծնողական բանալին
Երրորդ պարամետրը True է՝ եթե ջնջման հաստատումը պահանջվում է, կամ False, եթե հաստատումը չի պահանջվում:

Գրանցամատյանից արժեք հեռացնելու համար օգտագործեք DeleteRegValue ֆունկցիան

Օրինակ՝

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

Փաստորեն, API-ի հնարավորությունները գործում են օպերացիոն համակարգ Windows-ը գրեթե անսահման է: Եկեք ավարտենք Visual Basic-ի այս հնարավորությունը և վերջապես գրենք մի փոքր ծրագիր՝ օգտագործելով API ֆունկցիաները:

Այս ծրագիրը պարզապես ցուցադրում է հաղորդագրություն էկրանին, տեղադրեք հետևյալ կոդը.

Մասնավոր հայտարարագրել գործառույթը BeginPath Lib «gdi32» (ByVal hdc այնքան ժամանակ) Քանի դեռ Անձնական հայտարարել գործառույթը EndPath Lib «gdi32» (ByVal hdc այնքան երկար) Քանի դեռ մասնավոր հայտարարել է գործառույթը PathToRegion Lib «gdi32» Longrehdy SetWindowRgn Lib «user32» ֆունկցիան (ByVal hWnd այնքան երկար, ByVal hRgn այնքան երկար, ByVal bRedraw որպես բուլյան) As Long Private Sub Form_Load() Const TEXT = «Դուք օգտագործել եք API» Dim hRgn As Long Romans «Time: « Font.Bold = True Font.Size = 60 Width = TextWidth(TEXT) Height = TextHeight(TEXT) BeginPath hdc Print TEXT EndPath hdc hRgn = PathToRegion(hdc) SetWindowRgn hWnd, -Fal.R. 2 , (Screen.Height - Height) / 2 End Sub

Այստեղ մենք օգտագործել ենք 4 ֆունկցիա (BeginPath, EndPath, PathToRegion, SetWindowRgn), որոնք տեղակայված են երկու dll գրադարաններ(gdi32, user32):

Առայժմ այսքանը:

© 2024 ermake.ru -- Համակարգչի վերանորոգման մասին - Տեղեկատվական պորտալ