Ի՞նչ է API-ն և ինչո՞ւ է այն անհրաժեշտ: Ինչ է API-ն Օգտագործելով api

Դուք հավանաբար տեսել եք «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-ներ, որպեսզի հեշտացնեն վեբ մշակողների համար մուտք գործել ձեր գտնվելու վայրը. նրանք պարզապես կարող են հարցնել «որտե՞ղ եք դուք», և զննարկիչը կկատարի ձեր GPS-ին կամ մոտակայքում մուտք գործելու դժվարին աշխատանքը: 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 Քարտեզներ երրորդ կողմի կայքերում, ապահովելով, որ նրանք օգտագործում են այն հետևողական ձևով, այլ ոչ թե փորձում են պատահականորեն կիրառել այն շրջանակը, որը ցույց է տալիս կայքը: Գուգըլ քարտեզներ, Օրինակ.

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

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

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

Առավելությունները:

Տեսակներ

  • վերադառնալով. խնդրանքով երրորդ կողմի դիմումցանկացած մեթոդի հետ տրված պարամետրերսերվերը տրամադրում է պահանջվող տեղեկատվությունը հատուկ ձևաչափով.
  • փոփոխվող. Հաճախորդը կանչում է սերվերի ինչ-որ գործառույթ, որը մուտքագրում է նոր տեղեկություններ կամ փոխում է որոշակի կարգավորումներ դրա վրա:

Yandex.Direct API

API-ն արդյունավետ է կայքի առաջխաղացման համար:

  1. Դրա հիման վրա մշակողները կարող են ստեղծել հավելվածներ, որոնք անմիջականորեն փոխազդում են ծառայության հետ որոնման համակարգ. Նման ծրագրերը գովազդատուներին հնարավորություն կտան ճկուն կերպով կառավարել լայնածավալ գովազդը, ստանալ վիճակագրական հաշվետվություններ դրանցից յուրաքանչյուրի վերաբերյալ և ճշգրիտ կանխատեսել բյուջեները։
  2. Օգտագործելով Direct API-ը՝ գովազդային գործակալությունները կարող են դիտել իրենց հաճախորդների ամբողջ ցուցակը, իսկ հաճախորդները՝ իրենց ներկայացուցիչներին:
  3. Եթե ​​որոնման համակարգի օպտիմալացման համար օգտագործվող որոշակի արտահայտություններ տալիս են ցածր CTR համատեքստային գովազդ, նրանց համար ցուցադրումը կարող է ավտոմատ կերպով անջատվել: Թեմատիկ հարթակներում դուք կարող եք սակագներ սահմանել API-ի միջոցով, որոշ դոնորներ կարող են հեռացվել:
  4. Yandex.Direct API-ն ունի SOAP ինտերֆեյս, այսինքն՝ այն ապահովում է ծրագրավորման լեզուների լայն ընտրություն՝ հավելվածներ ստեղծելու համար: Այս արձանագրությունն ապահովվում է այնպիսի լեզուներով, ինչպիսիք են Perl, Java, Python և այլն: Տվյալների փոխանակումը կարող է իրականացվել նաև JSON ձևաչափով:

Եթե ​​դուք աշխատում եք նույնիսկ հեռակա վեբ զարգացման ոլորտի մոտ, կարող եք 100% վստահ լինել, որ կլսեք այդ երեք տխրահռչակ տառերը՝ API:

Նրանց մասին խոսակցությունները ցրված են նոբների և փորձագետների միջև.

«Ինչու պետք է անեմ API զանգ? Նա թիվ ունի՞։

«Այս երրորդ կողմի API-ին ուղղված պարզ զանգը կօգնի ձեզ հասնել դրան»:

«Մենք ձեզ համար կստեղծենք RESTful API; համոզվեք, որ ձեր նոր համակարգլավ է աշխատում այլ ծառայությունների հետ»:

Թեև API-ները սկզբում կարող են սարսափելի թվալ, դրանք կարող են բառացիորեն փոխել ձեր կյանքը որպես մշակողի:

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

Որպես ծրագրավորողներ, դուք հաճախ եք լսում «անիվը նորից մի հորինեք» խորհուրդը.

կատակ:
իմաստուն խորհուրդ՝ մի՛ հայտնագործեք անիվը
ծրագրավորող: Լավ
երբեք այլևս չի գրում մաքսային կոդ

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

API-ի օգտագործման առավելությունները Ինչ է իրականում API-ն Ինչ տեսակի API-ներ կան API-ի օգտագործման գործնական օրինակներ

Դե, ժամանակը չէ՞ սուզվելու դրա մեջ։

API-ների առավելությունները. ինչու՞ օգտագործել դրանք:

Առաջիններից մեկը, ամենաշատը կարևոր փուլերծրագրավորողի իմ կարիերան վերաբերում էր API-ի ճիշտ ձևավորմանը:

Ես դեռ օգտագործում եմ դրանք ամեն օր:

Նախքան խորամանկության մեջ մտնելը, թույլ տվեք նախ համոզել ձեզ, որ API-ն հասկանալն արժե ձեր ժամանակը:

Քանի որ API-ներ օգտագործել սովորելը մեծապես բարելավում է ձեր զարգացման արդյունավետությունը:

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

Երկրորդ, զարգացման խնդիրներից շատերը, որոնց դուք կհանդիպեք, արդեն լուծվել են ձեզնից առաջ մեկ ուրիշի կողմից: Ինչ ձև էլ որ լինի դրանք առկա լուծումները(FaaS, գրադարաններ, վեբ ծառայություններ, SDK-ներ, բովանդակության API-ներ և այլն), ամենայն հավանականությամբ, ձեզ API-ի կարիք կունենա նրանց հետ փոխգործակցելու համար:

Այսպիսով, ինչ է API-ն:

Դե, պաշտոնական, սարսափելի սահմանումը հետևյալն է.

IN Համակարգչային ծրագրավորումԾրագրային ծրագրավորման ինտերֆեյսը (API) սովորական սահմանումների, արձանագրությունների և կիրառական ծրագրեր ստեղծելու գործիքների մի շարք է: Ընդհանուր առմամբ, դա տարբեր կապի հստակ սահմանված մեթոդների մի շարք է ծրագրային բաղադրիչներ. Լավ API-ն հեշտացնում է զարգացումը համակարգչային ծրագիր, ապահովելով բոլոր շինարարական բլոկները, որոնք այնուհետև հավաքվում են ծրագրավորողի կողմից:

Դժվար է, հա՞: Եկեք ակադեմիական արձակը մի աստիճան իջեցնենք: Ահա տնային API-ի ավելի բարեկամական սահմանումը.

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

API-ների վրա որոշակի լույս սփռելու համար եկեք թվարկենք, թե որոնք չեն դրանք.

    API-ն անպայմանորեն արտաքին ծառայություն չէ: Օրինակ, դուք կարող եք գրադարաններ ներառել անմիջապես ձեր լուծման մեջ ԿԱՄ օգտագործել դրանք API-ի միջոցով:

    API-ն ավելին է, քան պարզապես ինտերֆեյս: Սա և՛ հստակեցում/ձևաչափ է, և՛ իրականացում:

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

API-ն նույնպես վեբ-կեռիկ չէ: Եթե ​​դժվարանում եք հասկանալ երկուսի միջև եղած տարբերությունը, ահա Web Hooks-ի ներածությունը:

API-ի տարբեր տեսակներ

Բոլոր API-ները հավասար չեն ստեղծվել:

Չնայած նրանք հիմնականում ունեն նույն նպատակը, ոմանք դրան ավելի լավ են հասնում, քան մյուսները: Քանի որ սա պետք է լինի սահուն ներածություն, ես չեմ խորանա այն մասին, թե ինչն է դարձնում API-ն ավելի լավը, քան մյուսները: Այնուամենայնիվ, հիշեք, որ մարդիկ տարբեր մոտեցումներ ունեն API-ներ ստեղծելու համար: Եթե ​​ձեզ հետաքրքրում է այս թեման, Google «API Design Patterns» և «API Paradigms»: Կամ պարզապես սկսեք այս կոկիկ մուտքային մակարդակի հոդվածից https://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=https://blog.cloudobjects.io/api-design / 2017/04/10/api-design-paradigms/&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhg_fNGlwZoZcThq. :)

API-ի նպատակն է հեշտացնել ձեր կյանքը որպես ծրագրավորող: Ինչպե՞ս են դա անում։ Հատկությունների/հատկանիշների հավաքածուն համատեղելով և այդ հատկանիշները վերջնակետերի միջոցով բացահայտելով (սովորաբար URL-ի օրինաչափություններ, որոնք օգտագործվում են API-ի հետ փոխազդելու համար): Այս վերջնակետերը ցանկացած API-ի հետ փոխազդելու միակ միջոցն են: Յուրաքանչյուր վերջնակետ կունենա իր հարցումների և պատասխանների հատուկ ձևաչափ. դուք սովորաբար կգտնեք այս ձևաչափը API-ի փաստաթղթերում:

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

Ներքևի գիծը, API-ն նման է ցանկացած ինտերֆեյսի. լույսի անջատիչը կմիացնի լույսերը՝ անկախ նրանից, թե դուք գիտեք, թե ինչպես են դրանք աշխատում: էլեկտրական հոսանքներ(կամ որպես երիտասարդ ես նաև իմացա, որ որպեսզի այն աշխատի, դուք պետք է վճարեք ձեր էլեկտրաէներգիայի հաշիվը, բայց դա այլ պատմություն է):

Ինչպես օգտվել API-ից. գործնական օրինակներ

API փաստաթղթերի ընթերցում և ըմբռնում

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

Հիմնական API-ի օգտագործման օրինակներ

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

Այժմ, եթե դուք հետևել եք մեր բլոգին, ես կասկածում եմ, որ ձեզ ավելի շատ հետաքրքրում են վեբ API-ները, քան որևէ այլ բան: Այսպիսով, եկեք սուզվենք կոնկրետ օգտագործման դեպքերի մեջ: Խնդրում ենք նկատի ունենալ, որ մենք կօգտագործենք Փոստմենը մեր օրինակներում: Իհարկե, այս Rest Client-ը կապված է վեբ միջավայրի հետ, սակայն նման գործիքներ սովորաբար գոյություն ունեն նաև այլ միջավայրերում: Արժե դիտել տվյալ միջավայրի համար նախատեսված գործիքները՝ նախքան դրա հետ խաղալը. կարող է ձեզ շատ ժամանակ խնայել:

Եթե ​​ցանկանում եք հետևել մեզ, դուք պետք է ներբեռնեք «Փոստմեն» հաճախորդը: https://www.getpostman.com/

Օգտագործելով հանրային API-ն՝ տվյալներ ստանալու համար

Մեր առաջին օրինակը կլինի բավականին պարզ, բայց դեռ ավելի հետաքրքիր, քան մաթեմատիկականը:

Մենք կօգտագործենք Dog API-ն: Այն ոչ միայն զվարճալի API է, այլև չի պահանջում որևէ իսկորոշում: Բացի այդ, դա HTTP REST API է, ինչը նշանակում է, որ այն վեբ API է: Քանի որ այն կապված է այս միջավայրի հետ, այն մեզանից պահանջում է համապատասխանել արձանագրության որոշ առանձնահատկություններին. այս դեպքում HTTP բայերը (GET, PUT, POST, DELETE և այլն): Մեր օրինակում մենք կպահենք այն պարզ և կօգտագործենք միայն GET բայը: Ամեն դեպքում, API-ն թույլ չի տալիս այլ բան աջակցել։ Հանրային API-ների մեծամասնությունը թույլ է տալիս միայն օգտագործել տվյալներ, այլ ոչ թե հրապարակել դրանք, օրինակ՝ GET բայը:

Եկեք գործարկենք Postman-ը և տեսնենք, թե ինչ տեսք ունի նրա ինտերֆեյսը:

Իմ UI-ն օգտագործում է մուգ թեմա, ուստի այն կարող է մի փոքր տարբերվել ձերից:

Հնարավոր է, որ սկզբում մարսելու շատ տեղեկատվություն լինի, ուստի եկեք սկսենք VERB-ից և URL-ից:

Լռելյայն բայը պետք է լինի GET, որպեսզի կարողանաք այդպես թողնել և մուտքագրել հետևյալ URL-ը՝ https://dog.ceo/api/breeds/list/all

Կտտացրեք «Ուղարկել» և վերջ: Դուք պետք է պատասխան ստանաք համապատասխան տվյալներով։ Voila! Դուք հենց նոր կատարեցիք ձեր առաջին API զանգը: Այժմ այս օրինակի համար մենք չենք օգտագործի ստացված որևէ տվյալ։ Բայց դուք ունեք մի գաղափար. դուք կարող եք տարբեր շների ցեղատեսակներ ցույց տալ ձեր օգտագործողին և ցուցադրել այդ ցեղի նկարը, եթե նրանք սեղմեն դրա վրա:

Դուք կարող եք խաղալ տարբեր երթուղիների հետ իրենց փաստաթղթերում, որպեսզի ծանոթանաք շրջակա միջավայրին:

Հրաշալի փաստ. այս փոքրիկ նախագիծը նույնպես բաց կոդով է աղբյուր կոդըայնպես որ կարող եք դիտել այստեղ https://github.com/ElliottLandsborough/dog-ceo-api:

Անձնական API-ի միջոցով նույնականացման կառավարում

Այստեղ մենք կօգտագործենք կոդը միայն Snipcart API-ի հետ փոխազդելու համար՝ https://docs.snipcart.com/api-reference/introduction: Դուք կարող եք փակել Փոստատարը, բայց այն ձեռքի տակ պահեք; Լավ է օգտագործել նման գործիք API-ով աշխատելիս:

Նպատակը կլինի ստեղծել պարզ CLI գործիք՝ հաճախորդների համար մեկանգամյա օգտագործման զեղչեր ստեղծելու համար: Այս զեղչերը կստեղծվեն API-ի միջոցով և ամբողջությամբ կկատարվեն ձեր համակարգչի վրա:

Ստեղծեք նոր թղթապանակ այս նախագծի համար, օգտագործեք npm init թղթապանակում և վերբեռնեք ձեր տեքստի խմբագիր. Այժմ ստեղծեք index.js ֆայլ, ապա բացեք package.json ֆայլը: Դրանում վերին մակարդակի օբյեկտին ավելացրեք հետևյալ տողերը.

«bin»: («զեղչեր»: «./index.js»)

Մեզ անհրաժեշտ կլինի նաև հրամանատարական փաթեթ՝ հաճախորդի մուտքագրումը վերլուծելու համար: Այսպիսով, ընթացիկ թղթապանակում գործարկեք npm install -save commander: Մենք նաև կօգտագործենք փոքր գրադարան՝ նույնացուցիչներ ստեղծելու համար. Դուք կարող եք տեղադրել այն՝ օգտագործելով npm install -save shortid . Մինչ մենք դրա վրա ենք, եկեք գործարկենք նաև npm install -save request lib-ը, որպեսզի կարողանանք հեշտացնել HTTP զանգերը: Վերադարձեք ձեր index.js ֆայլին և տեղադրեք այս կոդը.

#!/usr/bin/env հանգույց var ծրագիր = պահանջում («հրամանատար»); var shortid = պահանջում ('shortid'); var հարցում = պահանջել ('խնդրանք'); ֆունկցիա CreateDiscount())( var discount = ( անունը՝ «20% OFF», գործարկիչ՝ «Code», տեսակը՝ «Rate», տոկոսադրույքը՝ 20, maxNumberOfUsages՝ 1, կոդը՝ shortid.generate() ) հարցում (( url) «http://app.snipcart.com/api/discounts» , վավերացում՝ ( «օգտագործող»՝ «YOUR_API_KEY»), մեթոդ՝ «POST», json՝ ճշմարիտ, մարմին՝ զեղչ), գործառույթ (սխալ, պատասխան, body )(consol.log(body.code);));) ծրագիր .arguments(' ') .action(function(համար) (for(var i = parseFloat(համար); i > 0; i-)( CreateDiscount ( ); ) )).parse(process.argv);

Եկեք ուղղակի կենտրոնանանք այստեղ հարցումների գործառույթի վրա: Այստեղ մենք արտաքին API զանգ ենք կատարում Snipcart-ին: Դուք կարող եք տեսնել, որ մենք մեթոդը փոխանցում ենք «POST» մեթոդին: Դա պայմանավորված է նրանով, որ մենք ցանկանում ենք տվյալներ հրապարակել Snipcart API-ում: Նշելով այս մեթոդը՝ API-ն գործողությունը ճիշտ կարտացոլի, որպեսզի կարողանա կարդալ հարցումի մարմինը, որը պարունակում է զեղչի տվյալները։

Հետաքրքիր API առանձնահատկություն, որը մենք դեռ չենք օգտագործել, նույնականացումն է: Մեր բոլոր մյուս օրինակները եղել են հանրային API-ներում. դրանք չեն պահանջում նույնականացում: Բայց իրական աշխարհի սցենարներում, ձեր օգտագործած API-ների մեծ մասը, հավանաբար, կպահանջի որոշակի նույնականացում, օրինակ՝ Twitter API-ն կամ Google Maps API-ն: Սա ստանդարտ «օրինաչափություն» է API աշխարհում: Մեր հաճախորդներն այնքան էլ ուրախ չեն լինի, եթե մենք ուրիշին թույլ տանք զեղչեր ստեղծել իրենց խանութում: ;)

Նույնականացման հայեցակարգը կարող է բավականին դժվար լինել. Դուք կարող եք կարդալ այս հիանալի գրառումը https://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=http://blog.restcase.com/restful-api-authentication- հիմունքներ /&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhjwWO5yc6nayLpXCQkh_X95B0OZMw թեմային ավելի լավ տիրապետելու համար:

Մեր նպատակների համար մենք փոխանցում ենք API բանալին https://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=https://en.wikipedia.org/wiki/Application_programming_interface_key&x =17259, 15700019,15700186,15700190,15700248,15700253&usg=ALkJrhhpSWyk-nV9379VcrY3TMcKiAdXlQ անմիջապես սերվերում և ճանաչում է մեզ Հուրեյը: Այնուհետև այն կարող է հարցում կատարել միայն մեր հաշվի համար:

Եթե ​​ցանկանում եք փորձարկել մեր փոքրիկ հավելվածը, կարող եք գործարկել npm install -g ծրագրի գրացուցակում և պարզապես գործարկել զեղչերը x՝ զեղչեր ստեղծելու համար x քանի անգամ: Կարող եք գնալ ձեր Snipcart վահանակ (հավերժ անվճար հաշիվներ թեստային ռեժիմում) և համոզվել, որ զեղչերը ճիշտ են ստեղծվել։ Դուք կարող եք պատկերացնել, թե որքան հզոր կարող է լինել սա. եթե դուք ստիպված լինեք ստեղծել այս զեղչերից 200-ը, ապա դա չափազանց շատ ժամանակ կպահանջվեր մեր ինտերֆեյսի միջոցով դա անելու համար: Այնուամենայնիվ, երբ դուք ծանոթանաք API-ի աշխատանքին, այն կարող է կատարվել րոպեների ընթացքում: Կոդը կարող է նաև կրկնակի օգտագործել, այնպես որ, եթե ձեզ անհրաժեշտ է նույն բանն անել մեկ ամսվա ընթացքում, ապա պատրաստ եք:

Եթե ​​դուք ունեք հատուկ օգտագործման դեպքեր API-ի համար, որոնց մասին ցանկանում եք խոսել, խնդրում ենք գրել դրանք մեկնաբանություններում: Մենք կփորձենք ավելացնել դրանք մեր բովանդակության ճանապարհային քարտեզում: :)

Վերջնական մտքեր

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

Մի քանի նրբերանգներ.

  • API-ները կարագացնեն ձեր արագությունը և կընդլայնեն ձեր զարգացման հնարավորությունները: Օգտագործե՛ք դրանք։
  • API-ները պարտադիր չէ, որ կապված լինեն վեբ էկոհամակարգի հետ. Դուք նրանց կտեսնեք ամենուր:
  • Միշտ ուշադիր ստուգեք API-ի փաստաթղթերը, որոնք ցանկանում եք օգտագործել:
  • Նախքան կոդավորումը սկսելը, միշտ որոնեք ձեր էկոհամակարգում առկա գործիքները (API կամ այլ):

Հիմա մերը վերջին օրինակըպատրաստ չէ «արտադրությանը», բայց դա ձեզ լավ պատկերացում է տալիս, թե ինչ տեսք կարող են ունենալ իրական կյանքում: Կան շատ բաներ, որոնք մենք կարող ենք բարելավել, օրինակ՝ թույլ տալ օգտվողին ընտրել զեղչի տեսակը և այլն: Մենք կարող ենք նաև օգտագործել ստեղծված կոդերը՝ դրանք ուղարկելու համար: էլուղղակիորեն նույն գործառույթում, այլ ոչ թե պարզապես գրանցելու դրանք: Եթե ​​մենք ավելի մեծ կարիք ունենայինք մեր զեղչային գործիքների համար, մենք կարող էինք ինքներս գրել API-ն: Այնտեղից մենք կարող էինք նույնիսկ ստեղծել UI, որը փոխազդում է մեր API-ի հետ, եթե ցանկանայինք: Ինչևէ, հուսով եմ, որ դուք հիմա կհասկանաք գաղափարը: :)

Այսպիսով, ո՞րն է հաջորդ քայլը: Ինչպես մշակման փուլում գտնվող գրեթե ամեն ինչ, դուք պետք է կոդավորեք, կոդավորեք, կոդավորեք և ավելին: Սա ձեզ կներկայացնի API կառավարման և ինտեգրման հետ: Որոշ ժամանակ անց նրանց հետ դուք ավելի արդյունավետ կդառնաք։

Եվ ահա, որտեղ սկսվում է իսկական զվարճանքը:

Ըստ Վիքիպեդիայի սահմանման՝ API-ն պատրաստի դասերի, ընթացակարգերի, ֆունկցիաների, կառուցվածքների և հաստատունների մի շարք է, որը տրամադրվում է հավելվածի (գրադարանի, ծառայության) կողմից՝ արտաքին միջավայրում օգտագործելու համար։ ծրագրային արտադրանք. Օգտագործվում է ծրագրավորողների կողմից բոլոր տեսակի հավելվածներ գրելու համար:

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

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

Այստեղ մեզ կօգնի API-ն: Տվյալների բազա մուտք գործելու փոխարեն մենք պարզապես կստեղծենք API, որի միջոցով գործընկեր խանութները տեղեկատվություն կստանան։ Այս կերպ տվյալների բազայի հետ կաշխատի միայն մեր API սկրիպտը, իսկ խանութները՝ այս սկրիպտով:

Ինչպես է դա աշխատում?
Օրինակ, խանութը հարցում է ուղարկում մեր API-ին
http://ourapi.com/get_books?limit=20
և մեր API-ն հասկանում է, որ պետք է տա ​​գրքերի ցանկ, որը բաղկացած է 20 օրինակից, քանի որ մենք անցել ենք սահմանաչափի պարամետրը, որը հավասար է 20-ի: Մեր սկրիպտը (API) հարցում է կատարում տվյալների բազա, ստանում է գրքերի ցանկ և վերադարձնում դրանք: պահել (իրականում, այն պարզապես ցուցադրում է ) որոշակի ձևաչափով: Այն ձևաչափը, որով API-ն տեղեկատվություն է վերադարձնում, կարող է լինել բացարձակապես ցանկացած բան, գլխավորն այն է, որ մեր խանութները դա հասկանան: Սա կարող է լինել JSON, սերիական զանգված կամ XML: Սա արդեն կարևոր չէ, գլխավորն այն է, որ դուք հասկանաք սկզբունքը։

Դուք սահմանում եք հրամանների մի շարք, որոնք 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Ես ուղարկեցի համապատասխան հարցումը և ստացա պահանջվող բաժանորդագրության ամսաթիվը կոնկրետի համար էլեկտրոնային փոստի հասցեները . Հաջորդը ստանդարտ մշակումն է և արդյունքի ելքը: