Какво е API?
Вероятно сте видели думата „API“. Операционната система, уеб браузърът и актуализациите на приложенията често обявяват нови API за програмисти. Но това, което е API?
Приложен програмен интерфейс
Терминът API е акроним и означава "Application Programming Interface".
Помислете за API като меню в ресторант. Менюто съдържа списък с ястия, които можете да поръчате, заедно с описание на всяко ястие. Когато уточнявате кои елементи от менюто искате, кухнята на ресторанта върши работата и ви осигурява някои готови ястия. Не знаете точно как ресторантът приготвя тази храна и не е нужно да го правите.
По подобен начин API изброява множество операции, които разработчиците могат да използват, както и описание на това, което правят. Разработчикът не е задължително да знае как, например, една операционна система изгражда и представя диалоговия прозорец „Запиши като“. Те просто трябва да знаят, че е достъпно за използване в приложението им.
Това не е идеална метафора, тъй като разработчиците може да трябва да предоставят свои собствени данни на API, за да получат резултатите, така че може би е по-скоро като изискан ресторант, където можете да предоставите някои от собствените си съставки, с които кухнята ще работи.
Но това е като цяло точно. API-ите позволяват на разработчиците да спестят време, като се възползват от реализацията на платформата, за да извършат работа с петна. Това помага да се намали количеството на разработчиците на код, които трябва да създадат, и също така помага за създаването на по-голяма съгласуваност между приложенията за същата платформа. API могат да контролират достъпа до хардуерни и софтуерни ресурси.
API-ите улесняват живота на програмистите
Да речем, че искате да разработите приложение за iPhone. Операционната система iOS на Apple осигурява голям брой API-и, тъй като всяка друга операционна система прави това по-лесно за вас.
Ако искате да вградите уеб браузър, за да покажете една или повече уеб страници, например, не е необходимо да програмирате свой собствен уеб браузър от нулата само за вашето приложение. Използвате WKWebView API за вграждане на WebKit (Safari) обект на браузъра във вашето приложение.
Ако искате да заснемете снимки или видео от камерата на iPhone, не е нужно да пишете собствен интерфейс на камерата. Използвате 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 Карти, вграден в уебсайт, този уебсайт използва приложния програмен интерфейс (API) на Google Карти, за да вгради тази карта. Google излага подобни API на уеб разработчиците, които след това могат да използват приложните програмни интерфейси (API), за да разбиват сложни обекти директно на уебсайта си. Ако такива API не съществуват, разработчиците може да трябва да създадат свои собствени карти и да предоставят свои собствени картови данни, само за да поставят малко интерактивна карта в уебсайт.
И тъй като това е API, Google може да контролира достъпа до Google Карти на уебсайтове на трети страни, като гарантира, че те го използват по последователен начин, вместо да се опитват да вграждат рамката, която показва уебсайта на Google Карти, например.
Това се отнася за много различни онлайн услуги. Има приложни програмни интерфейси (API) за искане на превод на текст от Google Преводач или вграждане на коментари или туитове във Facebook от Twitter в уебсайт.
Стандартът OAuth също така определя редица приложни програмни интерфейси (API), които ви позволяват да влизате в уебсайт с друга услуга - например, да използвате профилите си във Facebook, Google или Twitter, за да влезете в нов уебсайт, без да създавате нов потребителски профил само за този сайт , API-ите са стандартни договори, които определят начина, по който разработчиците комуникират с услуга, и вида на продукцията, която разработчиците трябва да очакват да получат обратно.
Ако сте преминали през това, ще имате по-добра представа за това, което е API. В крайна сметка не е нужно да знаете какво е API, освен ако не сте разработчик. Но ако видите, че софтуерна платформа или услуга е добавила нови API за различен хардуер или услуги, за разработчиците трябва да е по-лесно да се възползват от такива функции.
Кредит за изображения: patpitchaya / Shutterstock.com.