Gündəlik həyatımızda müxtəlif məlumat (data) tiplərindən ibarət mesajlar göndəririk və qəbul eləyirik, yəni sorğular əsasında müxtəlif mənbələrlə məlumat mübadiləsi (data exchange) edirik. Bəzən saytımızın başqa saytla məlumat mübadiləsinə ehtiyac olur. Bunu nə cür etdiyimizi anlamaq üçün API ismarışlarının (API calls, API requests) mənasını bilməliyik.
API (Application Programming Interface — Tətbiqi Proqramlaşdırma İnterfeysi)
Böyük şirkətlər özlərinin daxili istifadəsi və ya öz müştəriləri üçün nə vaxtsa API qurmalıdırlar. API-lərini məhsul kimi tərtib edən şirkətlər haqda, yəqin ki, eşimisiz. Məsələn, Weather Underground şirkəti hava datası API-sinə çıxış satır.
Ssenari örnəyi: Sizin kiçik biznes saytınızda müştərilər saytınızdakı formadan istifadə eləyib görüş vaxtına yazılırlar. İstəyirsiniz ki, müştəriləriniz həmin vaxtı və detalları avtomatik Google təqvimində tədbir kimi qeyd eləyə bilsinlər.
API-dən istifadə: İdeya budur ki, saytınızın serveri Google serveri ilə birbaşa danışıb göstərilən detallar əsasında event yaratmaq sorğusu versin. Bundan sonra sizin server Google-un cavabını alacaq, onu işləyəcək, və istifadəçiyə təsdiq mesajı tipli informasiyanı geriyə — brauzerə göndərəcək.
Alternativ olaraq, sizing brauzer API sorğularını öz serverinizi yan keçməklə birbaşa Google-a da göndərə bilər. Bəs Google təqviminin API-si başqa serverlərin API-lərindən nəylə fərqlənir?
Texniki baxımdan fərq sorğu və cavabın formatındadır.
Veb səhifəsini ortaya çıxarmaq üçün sizin brauzer HTML cavabı gözləyir ki, bunun içində prezentasiya kodları var. Google təqviminin API-si isə yalnız geriyə data göndərir. Bu data əsasən JSON tipli bir formatda olur.
Əgər saytınızın serveri APİ sorğusu göndərirsə, onda bu server klientdir (eynilə, siz sayta girmək üçün brauzerdən istifadə eləyəndə, brauzer sizin klient olur).
İstifadəçi kimi sizin perspektivdən API-lər imkan verir ki, saytınızdan çıxmadan əməliyyatı başa çatdırasınız.
Müasir vebsaytların çoxu ən azı bir neçə üçüncü tərəfin API-sindən istifadə edir.
Bir çox texniki problemlərin hazır həlli var, bunu üçüncü tərəf təklif edir. Bu, bəzən modul şəklində bəzən də xidmət şəklində olur. Hazır həlldən istifadə eləmək daha asan və daha etibarlı yoldur.
Proqramçılar komandası bəzən öz əpplərini bir neçə server arasında bölürlər, bunlar APİ vasitəsilə əlaqədə olur. Əsas əpp serverinə xidmət eləyən serverlərə mikroserver deyilir.
Deyilənləri yekunlaşdırsaq belə alınır. Əgər şirkət müştərilərinə API təklif edirsə, bu o deməkdir ki, sırf data cavabları gətirən xüsusi təyin olunmuş URL dəstləri düzəldiblər. Yəni bu cavablar vebsaytın qrafik interfeysinə bənzəyən prezentasiya tipli şeyləri daşımır.
Belə sorğuları öz brauzerinizlə göndərə bilərsinizmi? Çox vaxt bəli. Aktual HTTP tekst formasında ötürülür, sizin brauzer həmişə cavabın görsənməsi üçün ən yaxşı üsulu tapır.
ORM (Object Relational Mapping) həll yolları datanın hərəkətə gətirdiyi APİ quruculuğunda faydalı olan proqramlaşdırma texnologiyasıdır. Bu texnologiya obyektə yönəlmiş proqram dillərindən istifadə eləməklə uyuşmaz sistemlər arasındakı data mübadiləsini təmin edir.
İstifadəçilərin konkret ehtiyacları var ki, bu əppin data modelinə tələbat yaradır. Ümumiyyətlə, burda data arxitekturası SQL kimi databaza skriptləri ilə işlənib hazırlanır. Bundan sonra databazada CRUD hərəkətlərinin icrası üçün server tətbiqinin ayrıca modulundan istifadə olunur.
CRUD icrası üçün yüksək səviyyəli APİ rolunu ORM oynayır. Hərçənd son vaxtlar keyfiyyətli ORM-lər həm də bizə imkan yaradır ki, datanı kodla istifadəyə hazır vəziyyətə gətirək. Mürəkkəb data manipulyasiyaları, təmizləmə və sair işlərini çox vaxt kodlaşdırmaqla görmək asan olur. Ayrıca təyin olunmuş ETL (Çıxarma, Çevirmə və Yükləmə) alətinin olmasına baxmayaraq həmin ETL vəzifələrini asanlıqla ORM ilə yerinə yetirmək olar.
Çıxarma, çevirmə və yükləmə vəzifələrini kodla yerinə yetirmək imkan verrir ki, çox müxtəlif mənbələrdən glən datalar asanlıqla interasiya edilsin. Müxtəlif tərkibli SQL databazaları, NoSQL datası, govluq sistemi datası, üçüncü tərəf datası JavaScript ORM-lə vahid dil altında inteqrasiya oluna bilər.
Sərlövhədəki foto: Maximilian Weisbecker / Unsplash