API (Application Program Interface)
Интерфейс на приложната програма интерфейс за взаимодействие между клиентския сайт и програми и сървъри на трети страни. Когато вместо обичайната регистрация те предлагат влизане чрез акаунт в социалните мрежи, това е използването на API, услугата използва бази данни на социалните мрежи.
Какво е пример за API?
Когато използвате приложение на мобилния си телефон, приложението се свързва с интернет и изпраща данни към сървър. След това сървърът извлича тези данни, интерпретира ги, извършва необходимите действия и ги изпраща обратно на вашия телефон. След това приложението интерпретира тези данни и ви представя информацията, която искате, по четим начин. Ето какво представлява API – всичко това се случва чрез API.
За да обясним това по-добре, нека вземем познат пример.
Представете си, че седите на маса в ресторант с меню за избор, от което да поръчате. Кухнята е част от „системата“, която ще подготви вашата поръчка. Това, което липсва, е критичната връзка, която да съобщи поръчката си в кухнята и да достави храната си обратно на масата. Тук идва сервитьорът или API. Сервитьорът е месинджърът – или API – който приема вашата заявка или поръчка и казва на кухнята – системата – какво да прави. След това сервитьорът ви доставя отговора; в този случай това е храната.
Ето пример за API от реалния живот. Може да сте запознати с процеса на търсене на полети онлайн. Точно като ресторанта, имате разнообразие от опции, от които да избирате, включително различни градове, дати на заминаване и връщане и др. Нека си представим, че резервирате, че сте полет на уебсайт на авиокомпания. Вие избирате град и дата на заминаване, град и дата на връщане, клас на кабината, както и други променливи. За да резервирате своя полет, вие взаимодействате с уебсайта на авиокомпанията, за да получите достъп до тяхната база данни и да видите дали има свободни места на тези дати и какви могат да бъдат разходите.
В този случай услугата за пътуване взаимодейства с API на авиокомпанията. API е интерфейсът, който, подобно на вашия услужлив сервитьор, може да бъде помолен от тази онлайн услуга за пътуване да получи информация от базата данни на авиокомпанията за резервиране на места, опции за багаж и т.н. След това API приема отговора на авиокомпанията на вашата заявка и го доставя правилно обратно към онлайн услугата за пътуване, която след това ви показва най-актуалната и подходяща информация.
Това, което API също предоставя, е слой на сигурност
Данните на вашия телефон никога не са напълно изложени на сървъра, както и сървърът никога не е напълно изложен на вашия телефон. Вместо това всеки комуникира с малки пакети данни, споделяйки само това, което е необходимо – като поръчване на храна за вкъщи. Вие казвате на ресторанта какво искате да ядете, те ви казват какво имат нужда в замяна и след това, накрая, вие получавате храната си.
API са станали толкова ценни , че съставляват голяма част от приходите на много бизнеси. Големи компании като Google, eBay, Salesforce.com, Amazon и Expedia са само някои от компаниите, които правят пари от своите API. Това, към което се отнася „ икономиката на API “, е този пазар на API.
Модерният API
През годините това, което е „API“ често описва всякакъв вид общ интерфейс за свързване към приложение. Съвсем наскоро обаче съвременният API придоби някои характеристики, които ги правят изключително ценни и полезни:
- Съвременните API се придържат към стандарти (обикновено HTTP и REST), които са удобни за разработчиците, лесно достъпни и широко разбираеми
- Те се третират повече като продукти, отколкото като код. Те са предназначени за консумация от специфична аудитория (напр. мобилни разработчици), те са документирани и са версии по начин, по който потребителите могат да имат определени очаквания за неговата поддръжка и жизнен цикъл.
- Тъй като са много по-стандартизирани, те имат много по-силна дисциплина за сигурност и управление, както и наблюдавани и управлявани за производителност и мащаб
- Както всеки друг продукт на софтуер, съвременният API има свой собствен жизнен цикъл на разработка на софтуер (SDLC) за проектиране, тестване, изграждане, управление и версия. Също така съвременните API са добре документирани за консумация и версии.