Veb API

**Veb API** – bul veb server yamasa veb brauzer ushın qollanbalı programmalastırıw interfeysi (API). Veb islep shıǵıw koncepciyası sıpatında, ol veb qosımshanıń klient tárepi menen (qollanılıp atırǵan hár qanday veb freymvorklardı qosqanda) baylanıslı bolıwı múmkin. Server táreptegi veb API, ádette HTTP tiykarındaǵı veb server arqalı JSON yamasa XML formatında ańlatılatuǵın, belgilengen soraw-juwap xabar sistemasına bir yamasa bir neshe ashıq kórsetilgen aqırǵı noqatlardan turadı. Server API (SAPI), eger ol uzaqtaǵı veb qosımsha tárepinen ashıq bolmasa, server táreptegi veb API dep esaplanbaydı.

## Klient tárep
Klient táreptegi veb API - bul veb brauzer yamasa basqa HTTP klientiniń funkcionallıǵın keńeytiw ushın programmalıq interfeys. Dáslep bular kóbinese nativlik plagin brauzer keńeytpeleri túrinde bolǵan, biraq jańalarınıń kópshiligi standartlastırılǵan JavaScript baylanıslarına baǵdarlanǵan.

Mozilla Foundation HTML5 qollanbaları menen nativlik mobil qosımshalardı almastırıwǵa járdem beriw ushın dizaynlanǵan óziniń WebAPI specifikaciyasın jarattı.

Google qáwipsiz emes nativlik plaginlerdi qáwipsiz nativlik sandbokslı keńeytpeler hám qollanbalar menen almastırıwǵa járdem beriw ushın dizaynlanǵan óziniń Native Client arxitekturasın dóretti. Olar modifikaciyalanǵan LLVM AOT kompilyatorın qollanıw arqalı bunı kóshpeli de etti.

## Server tárep
Server táreptegi veb API, ádette JSON yamasa XML formatında ańlatılatuǵın, belgilengen soraw-juwap xabar sistemasına bir yamasa bir neshe ashıq kórsetilgen aqırǵı noqatlardan turadı. Veb API kóbinese HTTP tiykarındaǵı veb server arqalı kórsetiledi.

Mashaplar - bir neshe server táreptegi veb APIlerdi paydalanıwdı birgelikte alıp baratuǵın veb qosımshalar. Vebxukler - serverdiń berilgen URIdi dereferenciyalaw ushın klient sıpatında islewi hám usı waqıyanı basqaratuǵın basqa serverde waqıya qáliplesiwi arqalı peer-to-peer IPC túrin támiyinleytuǵın, uzaqtaǵı atalǵan qubır yamasa qaytım shaqırıw túri sıyaqlı paydalanıw ushın dizaynlanǵan Birdeylestirilgen Resurs Identifikatorın (URI) kiriw maǵlıwmat sıpatında alatuǵın server táreptegi veb APIler.

### Aqırǵı noqatlar
**Aqırǵı noqatlar** úshinshi tárep programmalıq támiynatı arqalı kiriwge bolatuǵın resurslardıń qay jerde jaylasqanın kórsetetuǵın bolǵanlıqtan, server táreptegi veb APIler menen óz-ara tásir etiwdiń áhmiyetli aspektleri bolıp tabıladı. Ádette kiriw HTTP sorawları jiberiletuǵın hám sonıń nátiyjesinde juwap kútiletuǵın URI arqalı ámelge asırıladı. Veb API ler ashıq yamasa jabıq bolıwı múmkin, sońǵısı kiriw tokenin talap etedi.

Aqırǵı noqatlar turaqlı bolıwı kerek, bolmasa olar menen óz-ara tásir etetuǵın programmalıq támiynattıń durıs islewine kepillik beriw múmkin emes. Eger resurstıń jaylasqan jeri ózgerse (hám onıń menen birge aqırǵı noqat) onda aldın jazılǵan programmalıq támiynat islemey qaladı, óytkeni kerekli resurstı burınǵı jerinen taba almaydı. API támiyinlewshiler ele de ózleriniń veb APIlerin jańalawdı qálegenlikten, kópshiligi aqırǵı noqatqa kórsetetuǵın URIge versiyalastırıw sistemasın kirgizgen.

### Resurslar qarsı xızmetler
Web 2.0 veb APIleri kóbinese REST hám SOAP sıyaqlı mashina tiykarındaǵı óz-ara tásirlerdi paydalanadı. RESTful veb APIleri resurslarǵa kiriw ushın HTTP usılların URL-kodlanǵan parametrler arqalı paydalanadı hám maǵlıwmatlardı jiberiw ushın JSON yamasa XMLdi paydalanadı. Soǵan qarama-qarsı, SOAP protokolları W3C tárepinen standartlastırılǵan hám júk formatı sıpatında XMLdi paydalanıwdı, ádette HTTP arqalı talap etedi. Bunnan tısqarı, SOAP tiykarındaǵı veb APIler WSDL hújjetleri menen támiyinlengen XML sxemaların paydalanıw arqalı xabardıń strukturalıq pútinligin támiyinlew ushın XML validaciyasın paydalanadı. WSDL hújjeti veb xızmettiń XML xabarların hám transport baylanısların anıq anıqlaydı.

### Hújjetlestiriw
Server táreptegi veb APIler sırttaǵı dúnya ushın biznes logika menen óz-ara tásir etiw interfeysleri bolıp tabıladı. Kóp kompaniyalar ushın bul ishki biznes logika hám onıń menen baylanıslı intellektual múlk olardı basqa kompaniyalardan ajıratıp turatuǵın hám potencial túrde olarǵa básekilik artıqmashılıq beretuǵın nárse bolıp tabıladı. Olar bul informaciyanıń ashılıwın qálemeydi. Biraq, joqarı sapalı veb APIdi támiyinlew ushın jetkilikli dárejede hújjet bolıwı kerek. Tek hújjet penen támiyinlep qoymay, qáte haqqındaǵı xabarlarında da oǵan silteme beretuǵın API támiyinlewshilerdiń biri - Twilio.

Degen menen, házir keń tarqalǵan hújjetlengen server táreptegi veb APIlerdiń katalogları bar.

### Ósiw hám tásir
Kompaniyalar hár qanday baǵdarlamashı óz-ara tásir ete alatuǵın ashıq platformanı júrgiziw menen baylanıslı ósiw múmkinshiliklerin túsingeni sayın, ashıq veb APIlerdiń sanı sońǵı jıllar dawamında turaqlı túrde ósip bardı. ProgrammableWeb 2005-jıldaǵı 105 ten 2022-jılda 24000 nan aslamǵa ósken veb APIlerdi qadaǵalap baradı.

Veb APIler hámme jerde ushırasatuǵın bolıp qaldı. Qanday da bir túrdegi veb APIdi usınbaytuǵın iri programmalıq támiynat qollanbaları/xızmetleri az. Bul veb APIler menen óz-ara tásir etiwdiń eń keń tarqalǵan formalarınıń biri tvitler, Facebook pikirleri, YouTube videoları hám t.b. sıyaqlı sırtqı resurslardı jaylastırıw arqalı bolıp tabıladı. Haqıyqatında, tiykarǵı xızmeti funkciyalarǵa bay pikirler sisteması sıyaqlı jaylastırıwǵa bolatuǵın qurallardı usınıw bolǵan Disqus sıyaqlı júdá tabıslı kompaniyalar bar. Alexa Internet reytingindegi TOP 100 veb-sayttıń hárbiri APIlerdi paydalanadı hám/yamasa óziniń APIlerin usınadı, bul veb APIlerdiń ulıwma alǵanda úlken masshtabı hám tásiriniń anıq kórsetkishi bolıp tabıladı.

Qollanıwǵa bolatuǵın veb APIlerdiń sanı ósken sayın, qolaylıraq izlew hám tabıw múmkinshiligin beriw ushın ashıq kodlı qurallar islep shıǵıldı. APIs.json API hám onıń operaciyalarınıń mashina oqıy alatuǵın táriyiplemesin beredi, al oǵan baylanıslı APIs.io joybarı APIs.json metamaǵlıwmatlar formatına tiykarlanǵan APIlerdiń izlenetuǵın ashıq dizimin usınadı.

### Biznes

#### Kommerciyalıq
Kóp kompaniyalar hám shólkemler ózleriniń tiykarǵı biznes klientlerine xızmet kórsetiw ushın ózleriniń veb API infrastrukturasına qattı isenedi. 2014-jılı Netflix shama menen 5 milliard API sorawın aldı, olardıń kópshiligi ózleriniń jabıq API-i arqalı.

#### Húkimetlik
Kóp mámleketler kóp maǵlıwmat jıynaydı, hám ayırım húkimetler endi bul maǵlıwmatlarǵa kiriw múmkinshiligin ashıp atır. Bul maǵlıwmatlarǵa kiriw múmkinshiligi beriledi dep esaplanǵan interfeysler - bul veb APIler. Veb APIler «byudjet, jámiyetlik jumıslar, jınayat, nızam hám basqa mákeme maǵlıwmatları» sıyaqlı maǵlıwmatlarǵa hár qanday baǵdarlamashınıń qolaylı túrde kiriwine múmkinshilik beredi.

## Mısal
Keń tarqalǵan veb APIge mısal - Amerika kosmos agentligi NASA tárepinen basqarılatuǵın Kúnniń Astronomiyalıq Súwreti API si. Bul kosmos fotosúwretlerin yamasa astronomlar ushın qızıqlı bolǵan basqa súwretlerdi, hám súwretler haqqındaǵı metamaǵlıwmatlardı alıw ushın paydalanılatuǵın server táreptegi API.

API hújjetlerine sáykes, API bir aqırǵı noqatqa iye:
 https://api.nasa.gov/planetary/apod
Hújjetlestiriwde bul aqırǵı noqattıń GET sorawların qabıl etetuǵını kórsetilgen. Ol paydalanıwshıdan bir bólek informaciyanı, API giltin talap etedi hám bir neshe basqa qosımsha informaciya bóleklerin qabıl etedi. Bunday informaciya bólekleri parametrler dep ataladı. Bul API ushın parametrler soraw qatarı dep atalatuǵın formatta jazıladı, ol aqırǵı noqattan soraw belgisi (?) menen ajıratıladı. Ampersand (&) soraw qatarındaǵı parametrlerdi bir-birinen ajıratadı. Birgelikte, aqırǵı noqat hám soraw qatarı APIdiń qalay juwap qaytaratuǵının anıqlaytuǵın URLdi payda etedi. Bul URL sonday-aq soraw yamasa API shaqırıwı dep te ataladı.

Tómendegi mısalda, soraw qatarı arqalı APIge eki parametr jiberilgen (yamasa ótkerilgen). Birinshi - talap etiletuǵın API gilti hám ekinshi - qosımsha parametr — soralǵan fotosúwrettiń sánesi.
 https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&date=1996-12-03
Joqarıdaǵı URLdi veb brauzerde ashıw GET sorawın baslaydı, APIdi shaqıradı hám paydalanıwshıǵa qaytarıw mánisi yamasa qaytarıw dep atalatuǵın nátiyjeni kórsetedi. Bul API kompyuterler túsiniwi ushın názerde tutılǵan, biraq adam ushın da oqıw biraz ańsat bolǵan maǵlıwmat formatı túri bolǵan JSONdı qaytaradı. Bul jaǵdayda, JSON aq gnom juldız haqqındaǵı fotosúwret tuwralı informaciyanı óz ishine aladı:
```json
{
 "date":"1996-12-03",
 "explanation":"Like a butterfly,\r a white dwarf star begins its life\r by casting off a cocoon that enclosed its former self. In this\r analogy, however, the Sun would be\r a caterpillar\r and the ejected shell of gas would become the prettiest of all!\r The above cocoon, the planetary nebula\r designated NGC 2440, contains one of the hottest white dwarf stars known.\r The white dwarf can be seen as the bright dot near the photo's\r center. Our Sun will eventually become a \"white dwarf butterfly\",\r but not for another 5 billion years. The above false color image recently entered the public domain\r and was post-processed by F. Hamilton.\r",
 "hdurl":"https://apod.nasa.gov/apod/image/9612/ngc2440_hst2_big.jpg",
 "media_type":"image",
 "service_version":"v1",
 "title":"Cocoon of a New White Dwarf\r\nCredit:",
 "url":"https://apod.nasa.gov/apod/image/9612/ngc2440_hst2.jpg"
}
```
Joqarıdaǵı API qaytarıwı JSON maǵlıwmat elementleriniń atları, giltler dep atalatuǵın, hár qatardıń basında kórinetuǵınday etip qayta formatlanǵan. Bul giltlerdiń sońǵısı, url dep atalǵan, fotosúwretke kórsetpe beretuǵın URLdi kórsetedi:
 https://apod.nasa.gov/apod/image/9612/ngc2440_hst2.jpg
Joqarıdaǵı URLdi ashıp, veb brauzer paydalanıwshısı mına fotosúwretti kóredi:

Bul API aqırǵı paydalanıwshı tárepinen veb brauzer menen shaqırılıwı múmkin bolsa da (usı mısaldaǵıday), ol programmalıq támiynat tárepinen avtomat túrde yamasa kompyuter baǵdarlamashıları tárepinen programmalıq támiynat jazıw waqtında shaqırılıwı ushın itibarǵa alınǵan. JSON kompyuter programması tárepinen analiz etiliwi ushın itibarǵa alınǵan, ol fotosúwrettiń URLin hám basqa metamaǵlıwmatlardı alıp shıǵadı. Nátiyjedegi fotosúwret veb-saytqa jaylastırılıwı, avtomat túrde tekst xabarı arqalı jiberiwi yamasa baǵdarlamashı esapqa alǵan hár qanday basqa maqsette paydalanılıwı múmkin.

## Derekler

__BÖLİDİMÖNDEMEW__