Қолданбаның API себебі. Веб-қосымшалардағы API дегеніміз не және ол не үшін қажет?

Ерте ме, кеш пе, кез келген бағдарламашы сияқты тұжырымдамаға тап болады API. Алайда, мұндай кездесу болған кезде, оның не екенін, не үшін қажет екенін және оны қалай пайдалану керектігін бәрі біле бермейді. Бұл мақалада мен сіздердің кейбіреулеріңіздің білімдеріндегі бұл олқылықтың орнын толтырамын, сонымен қатар өз тәжірибемнен мысал келтіремін.

API (қолданбалы бағдарламалау интерфейсі) - Бұл қолданбалы бағдарламалау интерфейсі. Қарапайым тілмен айтқанда, бұл басқа бағдарламаларда қолдануға болатын әртүрлі функциялардың, тұрақтылардың, сыныптардың және сұрау пішімдерінің жиынтығы.

Солай деп санауға болады API- бұл белгілі бір объект, оның жүзеге асырылуы біз білмейтін, дегенмен, біз оны пайдалана аламыз. Мысалы, компьютер - бұл іске асырылуын өте аз адамдар білетін объект, бірақ оны барлығы дерлік кейбір әрекеттерді орындау үшін пайдалана алады: бейнелерді көру, Интернетте шолу, мәтінді басып шығару және т.б. Мұның қалай жұмыс істейтінін аз адамдар біледі, бірақ бәрі дерлік мұны істей алады.

Мысал APIболып табылады Windows API, OpenGL API, Direct3D APIтағыда басқа.

Мысалы, жақында мен де тікелей кездестім API. Мен пошталық тізім қызметіне тіркелдім» SmartResponder.ru" және адамдар жазыла бастаған ақпараттық бюллетеньді бастады. Тапсырма келесідей болды: жазылғаннан кейін 24 сағат ішінде адам менің ақылы бейне курсымды жеңілдікпен сатып ала алады. Жазылушылар туралы барлық ақпарат серверде сақталғандықтан " SmartResponder.ru", содан кейін қалыпты қатынас (мысалы, арқылы ДБ) Мен бұл деректерге қол жеткізе алмадым, бірақ оны жүзеге асыру қажет болды. Шүкір," SmartResponder.ru«өзіңіз бар API, мен қолданған.

Мен олардан таптым APIнәтижесінде жазылу күнін алу үшін сұрау пішімі. Әрі қарай cURLМен сәйкес сұрауды жібердім және белгілі бір жазылу күнін алдым электрондық пошта мекенжайлары. Келесі стандартты өңдеу және нәтижені шығару.

Артықшылықтары:

Түрлері

  • қайтып келу. Үшінші тарап қолданбасы көрсетілген параметрлері бар әдісті сұрағанда, сервер сұралған ақпаратты белгілі бір пішімде береді;
  • өзгеру. Клиент жаңа ақпаратты енгізетін немесе ондағы белгілі параметрлерді өзгертетін кейбір сервер функциясын шақырады.

Yandex.Direct API

API веб-сайтты жылжыту үшін тиімді.

  1. Оның негізінде әзірлеушілер іздеу жүйесі қызметімен тікелей әрекеттесетін қолданбаларды жасай алады. Мұндай бағдарламалар жарнама берушілерге ауқымды жарнаманы икемді басқаруға, олардың әрқайсысы бойынша статистикалық есептерді алуға және бюджетті дәл болжауға мүмкіндік береді.
  2. Direct API пайдалана отырып, жарнама агенттіктері өз клиенттерінің толық тізімін, ал клиенттер өз өкілдерін көре алады.
  3. Іздеу жүйесін оңтайландыру үшін пайдаланылатын кейбір фразалар контекстік жарнамада төмен CTR берсе, олар үшін дисплей автоматты түрде өшірілуі мүмкін. Тақырыптық платформаларда белгілі бір донорларды жоюға болатын API арқылы тарифтерді орнатуға болады;
  4. Yandex.Direct API интерфейсінде SOAP интерфейсі бар, яғни қолданбаларды құру үшін бағдарламалау тілдерінің кең таңдауын қамтамасыз етеді. Бұл хаттамаға Perl, Java, Python және т.б. сияқты тілдер қолдау көрсетеді. Деректер алмасу JSON пішімінде де жүзеге асырылуы мүмкін.

Wikipedia анықтамасы бойынша API - бұл сыртқы бағдарламалық өнімдерде пайдалану үшін қолданба (кітапхана, қызмет) беретін дайын сыныптар, процедуралар, функциялар, құрылымдар және тұрақтылар жиынтығы. Бағдарламашылар қолданбалардың барлық түрлерін жазу үшін қолданады.

Бірақ Уикипедияның көп бөлігі көптеген адамдарға түсініксіз болғандықтан, мен API деген не екенін және олар әдетте не үшін жасалғанын және қалай қолданылатынын қарапайым тілмен түсіндіруге тырысамын.

API интерфейстері мүлдем басқа, бірақ мысал ретінде бізде дүкендер желісі және бір ғана ортақ дерекқор бар жағдайды таңдадым. Сізде серіктестік бағдарлама бар деп елестетіп көріңіз. Серіктестік бағдарлама келесі принцип бойынша жұмыс істейді: адам серіктестік бағдарламасына тіркеледі және дүкен қозғалтқышын алады. Содан кейін ол бұл дүкенді өзінің хостингіне орнатып, жұмыс істей бастайды. Бірақ бұл дүкендегі барлық деректер біздің дерекқорымыздан алынған, яғни біз әрбір серіктеске құнды дерекқорымызға кіруге рұқсат беруіміз керек. Мұның қаншалықты қауіпті екенін елестете аласыз ба? Өйткені, біз барлық серіктес дүкендер онымен жұмыс істей алатындай етіп, дерекқорға кіруді сырттан ашуымыз керек. Қол жеткізу деректеріңіз қылмыскерлердің қолына түссе не болады?

Бұл жерде API бізге көмектеседі. Дерекқорға рұқсат берудің орнына, біз серіктес дүкендер ақпарат алатын API жасаймыз. Осылайша, дерекқормен тек біздің API сценарийі жұмыс істейді, ал дүкендер осы сценариймен жұмыс істейді.

Бұл қалай жұмыс істейді?
Мысалы, дүкен API-ге сұрау жібереді
http://ourapi.com/get_books?limit=20
және біздің API 20 көшірмеден тұратын кітаптар тізімін беру қажет екенін түсінеді, өйткені біз 20-ға тең шекті параметрден өттік. Біздің сценарий (API) дерекқорға сұраныс жасайды, кітаптар тізімін алады және оларды тізімге қайтарады. белгілі бір пішімде сақтаңыз (шын мәнінде ол жай ғана көрсетеді). API ақпаратты қайтаратын пішім мүлдем кез келген болуы мүмкін, ең бастысы біздің дүкендер оны түсінеді. Бұл JSON, серияланған массив немесе XML болуы мүмкін. Бұл енді маңызды емес, бастысы принципті түсіну.

Сіз API өзіңіз түсінетін пәрмендер жинағын анықтайсыз. Мысалы, біздің жағдайда бұл кітаптар тізімін алу, санаттар тізімін алу, танымал кітаптарды алу, жаңа кітаптар алу және т.б. сияқты командалар болуы мүмкін. Осылайша, шабуылдаушы біздің API-ге кіру мүмкіндігіне ие болса да, ол тек кітаптар тізімін алу болып табылады және бұл біздің дерекқорымызға ешқандай қауіп төндірмейді.

Мен қарапайым мысалмен API не екенін түсіндіре алдым деп үміттенемін. Егер сізде сұрақтар туындаса, оларды түсініктемелерде немесе форумда сұраңыз, біз оларды шешуге көмектесуге қуаныштымыз.

Барлық дерлік операциялық жүйелерде (UNIX, Windows, Mac OS және т.б.) бағдарламашыларға сол операциялық жүйе үшін қолданбаларды жасауға мүмкіндік беретін API бар. Операциялық жүйелердің негізгі API интерфейсі жүйелік шақырулар жиынтығы болып табылады.

3-анықтама: Жүйелік қоңырау- қолданбалы бағдарлама операцияны орындау үшін операциялық жүйенің ядросына қатынасады.

Заманауи операциялық жүйелер орындалатын есептеу процестері (көп тапсырма) және өкілеттіктерді бөлу арасындағы уақытты бөлуді қамтамасыз етеді, бұл орындалатын бағдарламалардың басқа бағдарламалар мен аппараттық құралдардың деректеріне қол жеткізуіне жол бермейді. ОЖ ядросы артықшылықты процессор режимінде жұмыс істейді. Процесс аралық операцияны немесе аппараттық құралдарға қол жеткізуді қажет ететін операцияны орындау үшін бағдарлама шақыру процесінің өкілеттігіне байланысты осындай шақыруды орындайтын немесе орындалмайтын ядроны шақырады.

Бағдарламалаушының көзқарасы бойынша жүйелік қоңырау әдетте жүйелік кітапханадан ішкі бағдарламаға немесе функцияға шақыру сияқты көрінеді. Дегенмен, мұндай функцияға немесе ішкі бағдарламаға шақырудың ерекше жағдайы ретінде жүйелік шақыруды жүйелік кітапханаға жалпы шақырудан ажырату керек, өйткені соңғысы артықшылықты операцияларды орындауды талап етпеуі мүмкін.

Бағдарламалық жасақтама өнеркәсібінде стандартты функционалдылыққа арналған жалпы, стандартты API маңызды, себебі олар жалпы API пайдаланатын барлық бағдарламалардың бірдей жақсы немесе кем дегенде әдеттегі таныс жолмен жұмыс істейтінін қамтамасыз етеді. GUI API жағдайында бұл бағдарламалардың жаңа бағдарламалық өнімдерді үйренуді жеңілдететін ұқсас пайдаланушы интерфейсі болатынын білдіреді.

Екінші жағынан, әртүрлі операциялық жүйелердің API интерфейстеріндегі айырмашылықтар платформалар арасында қолданбаларды порттауды өте қиындатады. Бұл күрделіліктен шығудың әртүрлі әдістері бар – «аралық» API интерфейстерін жазу (GUI API интерфейстері WxWidgets, Qt, GTK және т. cygwin, және т. .

Сондай-ақ, бағдарламашыда бірдей нәтижеге жету үшін жиі бірнеше түрлі API бар екенін атап өткен жөн. Сонымен қатар, әрбір API әдетте абстракцияның төменгі деңгейіндегі API бағдарламалық жасақтамасының құрамдастарын пайдалану арқылы жүзеге асырылады.


Мысалы, браузерде «Сәлем, әлем!» жолын көру үшін сізге ең аз атауы және осы жолды қамтитын қарапайым мәтіні бар HTML құжатын жасау керек. Браузер осы құжатты ашқанда, браузер бағдарламасы файл атауын (немесе әлдеқашан ашық файл дескрипторын) HTML құжаттарын өңдейтін кітапханаға береді, ол өз кезегінде API операциялық жүйесінің көмегімен осы файлды оқып, оның құрылымын түсінеді. , содан кейін стандартты графикалық примитивтердің API кітапханалары арқылы «терезені тазалау», «таңдалған қаріппен «Сәлеметсіз бе, әлем!» жазу» сияқты операцияларға кезекпен қоңырау шалыңыз. Осы әрекеттерді орындау кезінде графикалық примитивтер кітапханасы сәйкес сұраулармен терезе интерфейсінің кітапханасымен байланысады және бұл кітапхана видеокарта буферіне деректерді жазу үшін операциялық жүйе API интерфейсімен байланысады.

Сонымен қатар, әр деңгейде дерлік бірнеше ықтимал балама API бар. Мысалы, біз бастапқы құжатты HTML тілінде емес, LaTeX тілінде жаза аламыз және көрсету үшін кез келген браузерді пайдалана аламыз. Әртүрлі браузерлер әдетте әртүрлі HTML кітапханаларын пайдаланады, сонымен қатар барлық нәрсені (жалпы айтқанда) әртүрлі қарабайыр кітапханаларды және әртүрлі операциялық жүйелерде құрастыруға болады.

Қолданыстағы көп деңгейлі API жүйелерінің негізгі қиындықтары мыналар болып табылады:

· Бағдарлама кодын бір API жүйесінен екіншісіне көшіру қиындығы (мысалы, ОЖ өзгерту кезінде);

·Төменгі деңгейден жоғары деңгейге өту кезінде функционалдылықты жоғалту. Шамамен айтқанда, әрбір API «қабаты» кейбір стандартты операциялар жиынтығын орындауды жеңілдету үшін жасалады. Бірақ сонымен бірге API төменгі деңгейімен қамтамасыз етілген кейбір басқа операцияларды орындау қиынға соғады немесе түбегейлі мүмкін емес болады.

Ескерту. Тасымалдау- программалауда портинг дегеніміз – бағдарламаны немесе оның бір бөлігін оның пайдаланушы қасиеттерін мүмкіндігінше сақтай отырып, бастапқы жазылған ортадан өзгеше, басқа ортада жұмыс істейтіндей етіп бейімдеу.

Егер сіз тіпті веб-әзірлеу индустриясының жанында қашықтан жұмыс істесеңіз, осы үш атақты әріпті еститініңізге 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 дегеніміз не?

Ресми, қорқынышты анықтама:

Компьютерлік бағдарламалауда қолданбалы бағдарламалау интерфейсі (API) қолданбалы бағдарламалық жасақтаманы құруға арналған күнделікті анықтамалардың, хаттамалардың және құралдардың жиынтығы болып табылады. Жалпы алғанда, бұл әртүрлі бағдарламалық жасақтама компоненттері арасындағы жақсы анықталған байланыс әдістерінің жиынтығы. Жақсы API бағдарламашы құрастыратын барлық құрылыс блоктарын қамтамасыз ету арқылы компьютерлік бағдарламаны әзірлеуді жеңілдетеді.

Бұл қиын, иә? Академиялық прозаны бір сатыға түсірейік. Міне, үй API интерфейсінің достық анықтамасы:

Қарапайым тілмен айтқанда, API өзара әрекеттесу логикасы үшін интерфейсті жариялайдыішінде не болып жатқанын білмей-ақ. Бұл анықтаманы сіз тұрған кез келген тілге, протоколға немесе ортаға қолдануға болады бағдарлама деңгейі(төменде бұл туралы толығырақ).

API интерфейстеріне біраз жарық түсіру үшін олардың не ЕМЕС екенін тізіп көрейік:

    API міндетті түрде сыртқы қызмет емес. Мысалы, кітапханаларды тікелей шешіміңізге қосуға немесе оларды API арқылы пайдалануға болады.

    API интерфейсі ғана емес. Бұл спецификация/пішім де, іске асыру да.

    API интерфейсі GUI (графикалық пайдаланушы интерфейсі) емес. Ол графикалық деңгейде өзара әрекеттеспейді; ол тек бағдарламалау тілі немесе байланыс протоколы арқылы бағдарламалық жасақтама деңгейінде жұмыс істейді.

API сонымен қатар веб-ілмек емес. Егер екеуінің арасындағы айырмашылықты түсіну қиын болса, мұнда веб-ілмектерге кіріспе бар.

Әртүрлі API түрлері

Барлық API интерфейстері бірдей жасалмаған.

Көбінесе олардың мақсаты бір болғанымен, кейбіреулер оған басқаларға қарағанда жақсы жетеді. Бұл қарапайым кіріспе болуы керек болғандықтан, API-ны басқаларға қарағанда жақсырақ ететін нәрсеге кірмеймін. Дегенмен, адамдардың API құрудың әртүрлі тәсілдері бар екенін есте сақтаңыз. Егер сізді осы тақырып қызықтырса, Google «API дизайн үлгілері» және «API парадигмалары». Немесе жай ғана 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_fNGb7u4_GUZGowzw. :)

API мақсаты - әзірлеуші ​​​​ретінде өміріңізді жеңілдету. Олар мұны қалай жасайды? Мүмкіндіктер/мүмкіндіктер жинағын біріктіру және сол мүмкіндіктерді соңғы нүктелер арқылы көрсету арқылы (әдетте API интерфейсімен әрекеттесу үшін пайдаланылатын URL үлгілері). Бұл соңғы нүктелер кез келген API интерфейсімен әрекеттесудің жалғыз жолы болып табылады. Әрбір соңғы нүктеде оның сұраулары мен жауаптары үшін арнайы пішім болады - әдетте бұл пішімді API құжаттамасынан табасыз.

Соңғы нүктелер қарапайым функциялар болуы мүмкін немесе басқа API интерфейстерін шақыратын көптеген функциялардан және т.б. Мұндағы бірден-бір маңызды мәселе - бұл функциялардың негізгі логикасы толығымен абстракцияланған. Оларды пайдалану үшін олардың ішінде не болып жатқанын білудің қажеті жоқ. Сіз дұрыс пішімді пайдалансаңыз, сіз оларды қолданбаңыздың бөліктерін пайдаланып, айтудың сәнді тәсілі болып табылатын пайдалана аласыз.

Қорытындылай келе, API кез келген интерфейс сияқты: электр тогының қалай жұмыс істейтінін білсеңіз де, жарық қосқышы шамды қосады (немесе мен жас кезімде оны электр қуатына жұмыс істеу үшін төлеу керек екенін білдім, бірақ бұл басқа әңгіме.)

API пайдалану жолы: практикалық мысалдар

API құжаттамасын оқу және түсіну

Құжаттардан сіз әрбір нысан функциясы енгізу пішімі қандай болуы керек екенін (сан, сандар массиві және т.б.) және шығыс пішімін сипаттайтынын көруге болады. Дегенмен, бұл функцияларды іске қосу логикасына қатысты ештеңе айтылмағанын ескеріңіз. Мысалы, әзірлеуші ​​консолін және Math.sqrt (функцияны орындамай) іске қоссаңыз, ƒ sqrt() ( ) сияқты нәрсе аласыз. Бұл API интерфейстерінің рухы: амалдық жүйенің API интерфейстерінің біреуін немесе веб API деп атасаңыз да, бұл принциптер өзгеріссіз қалады.

Негізгі API пайдалану мысалдары

Танымал API провайдерлерімен айналысатын көптеген нәрселер бар. Мысалы, Google Maps API жиі нақты уақыттағы дисплейлер мен қозғалыс сигналдарына негізделген деректермен пайдаланушы тәжірибесін жақсарту үшін пайдаланылады. Twitter API, тағы бір үлкені, мақсатты твиттерді нақты уақытта сүзу және көрсету үшін пайдаланылуы мүмкін.

Енді, егер сіз біздің блогты бақылап отырсаңыз, сізді бәрінен де веб API интерфейстері қызықтырады деп ойлаймын. Сондықтан нақты пайдалану жағдайларына тоқталайық. Біз мысалдарымызда Postman қолданатынымызды ескеріңіз. Әрине, бұл Rest Client веб-ортаға байланысты, бірақ мұндай құралдар әдетте басқа орталарда да бар. Онымен ойнауды бастамас бұрын, берілген орта үшін берілген құралдарды қарастырған жөн; көп уақытты үнемдей алады.

Егер сіз бізге жазылғыңыз келсе, сіз https://www.getpostman.com/ пошташы клиентін жүктеп алуыңыз керек.

Деректерді шығарып алу үшін жалпы API пайдалану

Біздің бірінші мысал өте қарапайым, бірақ математикалық мысалға қарағанда қызықтырақ болады.

Біз Dog API қолданамыз! Бұл қызықты API ғана емес, сонымен қатар аутентификацияны қажет етпейді. Оған қоса, бұл HTTP REST API, яғни бұл веб API. Бұл ортамен байланысты болғандықтан, ол бізден хаттаманың кейбір спецификалық мүмкіндіктерін сақтауды талап етеді: бұл жағдайда HTTP етістіктері (GET, PUT, POST, DELETE және т.б.). Біздің мысалда біз оны қарапайым етіп сақтаймыз және тек GET етістігін қолданамыз. Кез келген жағдайда, API сізге басқа ештеңені қолдауға мүмкіндік бермейді. Көпшілікке арналған API интерфейстерінің көпшілігі GET етістігі сияқты оны жариялауға емес, тек деректерді тұтынуға мүмкіндік береді.

Пошташыны іске қосып, оның пайдаланушы интерфейсі қандай болатынын көрейік.

Менің пайдаланушы интерфейсім қараңғы тақырыпты пайдаланады, сондықтан ол сіздікіден сәл өзгеше болуы мүмкін.

Бастапқыда қорытуға болатын ақпарат көп болуы мүмкін, сондықтан ЕТІСТІК пен 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 арқылы орнатуға болады. Біз дайын болған кезде HTTP қоңырауларын жеңілдету үшін npm install -save сұрау libын іске қосамыз. index.js файлыңызға оралып, мына кодты қойыңыз:

#!/usr/bin/env node var program = require(‘commander’); var shortid = require('shortid'); var сұрау = талап ету('сұрау'); function CreateDiscount())( var discount = ( атауы: '20% OFF', триггер: 'код', түрі: 'Баға', мөлшерлеме: 20, maxNumberOfUsages: 1, код: shortid.generate() ) сұрау(( url) : “http://app.snipcart.com/api/discounts” , аутентификация: (“пайдаланушы”: 'YOUR_API_KEY' ), әдіс: “POST”, json: true, негізгі мәтін: жеңілдік ), функция (қате, жауап, body )( console.log(body.code); )); program .arguments(' ') .action(функция(сан) ( for(var i = parseFloat(сан); i > 0; i-)( CreateDiscount() ); ) )).parse(process.argv);

Мұнда тек сұрау функциясына тоқталайық. Мұнда біз Snipcart-қа сыртқы API қоңырауын жасаймыз. Сіз әдіске «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& =17259, 15700019,15700186,15700190,15700248,15700253&usg=ALkJrhhpSWyk-nV9379VcrY3TMcKiAdXlQ тікелей серверде таниды және бізге хабар береді! Содан кейін ол тек біздің тіркелгімізге арнайы сұрау жасай алады.

Егер сіз біздің шағын қолданбамызды сынағыңыз келсе, жоба каталогында npm install -g іске қосып, жеңілдіктерді х рет жасау үшін жай ғана x жеңілдіктерін іске қоса аласыз. Snipcart бақылау тақтасына (сынақ режимінде мәңгілік тегін тіркелгілер) өтіп, жеңілдіктердің дұрыс жасалғанына көз жеткізуге болады. Мұның қаншалықты күшті екенін елестете аласыз: егер сізге осы жеңілдіктердің 200-ін жасау керек болса, оны біздің пайдаланушы интерфейсіміз арқылы жасау тым көп уақытты алады. Дегенмен, API қалай жұмыс істейтінімен танысқаннан кейін оны бірнеше минут ішінде жасауға болады. Кодты қайта пайдалануға болады, сондықтан бір айда дәл осылай істеу керек болса, сіз дайынсыз!

Егер сізде сөйлескіңіз келетін API үшін нақты пайдалану жағдайлары болса, оларды түсініктемелерде жазыңыз. Біз оларды мазмұнның жол картасына қосуды қарастырамыз! :)

Қорытынды ойлар

Бұл оқу құралы API интерфейстерінің не екенін және оларды әзірлеу жұмыс үрдісінде қалай пайдалануға болатынын жақсырақ түсінуге көмектесті деп шын жүректен үміттенемін.

Бірнеше қабылдаулар:

  • API интерфейстері жылдамдықты арттырады және даму мүмкіндіктерін кеңейтеді. Оларды қолданыңыз!
  • API интерфейстері міндетті түрде веб-экожүйемен байланысты емес; Сіз оларды барлық жерде көресіз.
  • Пайдаланғыңыз келетін API құжаттамасын әрқашан мұқият тексеріңіз.
  • Кодтауды бастамас бұрын әрқашан экожүйеңіздегі бар құралдарды (API немесе басқа) іздеңіз.

Енді біздің соңғы мысал «өндіріс» дайын емес, бірақ ол нақты өмірде қандай болуы мүмкін екендігі туралы жақсы түсінік береді. Біз жақсартуға болатын көптеген нәрселер бар, мысалы, пайдаланушыға жеңілдік түрін таңдауға мүмкіндік беру және т. Жеңілдік құралдарына жоғары қажеттіліктеріміз болса, API интерфейсін өзіміз жаза аламыз. Сол жерден біз қаласақ, API-мен өзара әрекеттесетін UI жасай аламыз. Қалай болғанда да, сіз идеяны қазір түсінесіз деп үміттенемін! :)

Сонымен, келесі қадам қандай? Әзірлеудегі барлық дерлік сияқты, сізге кодтау, кодтау, кодтау және тағы басқа кодтау қажет! Бұл сізді API басқаруымен және интеграциясымен таныстырады. Біраз уақыттан кейін сіз олармен тиімдірек боласыз.

Міне, нағыз қызық осы жерден басталады.