Ця стаття не містить . (січень 2016) |
Інтерфейс програмування застосунків (прикладни́й програ́мний інтерфе́йс, API) (англ. application programming interface) — це спосіб завдяки якому дві або більше компʼютерні програми можуть спілкуватися між собою. Набір визначень підпрограм, протоколів взаємодії та засобів для створення програмного забезпечення. Спрощено — це набір чітко визначених методів для взаємодії різних компонентів. API надає розробнику засоби для швидкої розробки програмного забезпечення. API може бути для веб-базованих систем, операційних систем, баз даних, апаратного забезпечення, програмних бібліотек.
Призначення
Одним з найпоширеніших призначень API є надання набору широко використовуваних функцій, наприклад для малювання вікна чи іконок на екрані. Програмісти використовують переваги API у функціональності, таким чином їм не доводиться розробляти все з нуля. API є абстрактним поняттям — програмне забезпечення, що пропонує деякий API, часто називають реалізацією (англ. implementation) даного API. У багатьох випадках API є частиною набору розробки програмного забезпечення, водночас, набір розробки може включати як API, так і інші інструменти/апаратне забезпечення, отже ці два терміни не є взаємозамінювані.
Високорівневі API часто програють у гнучкості. Виконання деяких функцій нижчого рівня стає набагато складнішим, або навіть неможливим.
Версії API
23 серпня 2023 року, згідно з повідомленням TechCrunch, соціальна мережа X оголосила, що припиняє підтримку деяких кінцевих точок та рівнів доступу до свого API під час модернізації своєї платформи. X також заявила, що вона оголошує застарілим API версії 1.1 та просить користувачів перейти на версію API 2.0 протягом наступних 30 днів.
Приклади API
- POSIX і [en]
- Windows API
- OpenGL
- DirectX
- GDI
Детальний опис
Наприклад, в мові Java, якщо програміст хоче використовувати клас «Scanner» (клас, який зчитує інформацію від користувача у програмах, орієнтованих на текстові операції), він імпортує бібліотеку «java.util.Scanner», щоб використовувати методи класу «Scanner» (у даному прикладі nextLine() i close()). Це приклад з API, що дозволяє взаємодіяти з бібліотеками в мові Java.
import java.util.Scanner; public class Test { public static void main(String[] args) { System.out.println("Enter your name: "); Scanner input = new Scanner(System.in); String name = input.nextLine(); System.out.println("Your name is " + name + "."); input.close(); } }
Документація
Безліч середовищ розробки програмного забезпечення надають документацію, пов'язану з ППІ (Прикладним Програмним Інтерфейсом) у деяких цифрових форматах, наприклад, Perl поставляється разом з програмою :
$ perldoc -f sqrt sqrt EXPR sqrt #Return the square root of EXPR. If EXPR is omitted, returns #square root of $_. Only works on non-negative operands, unless #you've loaded the standard Math::Complex module.
Мова python надає інструмент :
$ pydoc math.sqrt Help on built-in function sqrt in math: math.sqrt = sqrt(...) sqrt(x) Return the square root of x.
Java поставляється з документацією організованою в HTML сторінки (JavaDoc формат), а Microsoft розподіляє ППІ документацію для своїх мов (, C#, Visual Basic, F#, і т. ін.), вбудовані в довідкову систему Visual Studio.
Прикладний програмний інтерфейс в об'єктноорієнтованих мовах
В об'єктноорієнтованих мовах прикладний програмний інтерфейс зазвичай включає в себе опис набору визначень класу, з набором форм поведінки, пов'язаних з цими класами. Це абстрактне поняття пов'язане з реальними функціями, які надані або надаватимуться, класами, які реалізуються в методах класу.
Прикладний програмний інтерфейс в цьому випадку можна розглядати як сукупність всіх методів, які публічно доступні в класах (зазвичай званий інтерфейс класу). Це означає, що прикладний програмний інтерфейс вказує методи, за допомогою яких взаємодіє з об'єктами, отриманими з визначень класів і обробляє їх.
У більш загальному плані можна визначити Прикладний Програмний Інтерфейс як сукупність усіх видів об'єктів, які можна вивести з визначення класу, і пов'язаних з ними можливих варіантів поведінки.
Наприклад: клас, що представляє Stack, може просто виставити публічно два методи Push() (для додавання нового елемента в стек) і Pop() (для вилучення останнього пункту, ідеально розташований на вершині стека).
У цьому випадку Прикладний Програмний Інтерфейс може бути інтерпретованим як два методи pop() і push(), або, більш широко, використовується варіант, коли можна використовувати елемент типу Stack, який реалізує поведінку стека, надаючи йому можливість для додавання / видалення елементів з вершини. Друга інтерпретація видається більш доречною в дусі об'єктноорієнтованого підходу.
Якість документації, пов'язаної з Прикладним Програмним Інтерфейсом, є часто ключовим фактором, що визначає його успішність з точки зору простоти використання.
Бібліотеки і платформи прикладних програмних інтерфейсів
ППІ, як правило, пов'язаний із бібліотеками програмного забезпечення: ППІ описує і вказує очікувану поведінку в той час, як бібліотека є фактичною реалізацією даного набору правил. Один ППІ може мати декілька реалізацій (або жодної, будучи абстрактним) у вигляді різних бібліотек, які мають такий же інтерфейс.
Прикладний програмний інтерфейс також може бути пов'язаним з платформами програмування: платформа може бути заснована на кількох бібліотеках реалізує декілька інтерфейсів ППІ, але на відміну від звичайного використання ППІ, доступ до поведінки вбудований в платформу опосередкований шляхом розширення його змісту новими класами і вставлений в саму платформу. Крім того, загальний потік управління програми може бути під контролем абонента.
Прикладний програмний інтерфейс та протоколи
Прикладний програмний інтерфейс може бути також реалізацією протоколу.
Коли ППІ реалізує протокол, він може бути заснованим на проксі-методах віддалених викликів, що засновані на протоколі зв'язку. Роль ППІ може полягати саме в тому, щоб приховати деталі транспортного протоколу. Наприклад: RMI є ППІ, який реалізує протокол або JRMP IIOP як RMI-IIOP.
Протоколи, як правило, розподіляються між різними технологіями і зазвичай дозволяють різним технологіям обмінюватися інформацією, діючи як абстракція між двома світами. ППІ, як правило, є специфічним для конкретної технології: звідси, інтерфейси даної мови не можуть бути використані на інших мовах, якщо виклики функції не будуть перетворені з конкретної адаптації бібліотеки.
Прикладний програмний інтерфейс спільного використання з допомогою віртуальної машини
Деякі мови, серед яких такі, що працюють на віртуальних машинах (наприклад: мови, сумісні з NET CLI середовища CLR і JVM сумісних мов у віртуальній машині Java) можуть ділитися програмними інтерфейсами.
У цьому випадку віртуальна машина дозволяє мові взаємодії завдяки спільному знаменнику віртуальної машини, що абстрагується від конкретної мови, використовувати проміжний байт-код і його мову.
Прикладний програмний інтерфейс у WEB
При використанні прикладного програмного інтерфейсу в контексті веброзробки, як правило, ППІ визначається набором повідомлень запиту HTTP, також визначається структура повідомлень-відповідей, зазвичай у розширенні мови розмітки XML або в форматі об'єктного запису JavaScript (JSON). У той час як прикладний програмний інтерфейс у Web історично був практично синонімом для вебслужби, останнім часом тенденція змінилась (так званий Web 2.0) на відхід від Simple Object Access Protocol (SOAP) на основі вебсервісів і сервіс-орієнтованої архітектури (SOA) на більш прямі передачі репрезентативного стану (REST) стилів вебресурсів та ресурсоорієнтованої архітектури (ROA). Частина цієї тенденції пов'язана з рухом Семантичного вебресурсу до Опису Платформ (RDF), Концепції розвитку вебтехнологій інженерних онтологій. Прикладні програмні інтерфейси у Web, що дозволяють комбінувати декількома прикладними програмними інтерфейсами в нові додатки називають гібридними.
Політика впровадження
Існує два основних варіанти впровадження прикладного програмного інтерфейсу:
- Захист інформації про програмний інтерфейс від широкого загалу. Наприклад, компанія Sony дозволила розробляти програмний інтерфейс для PlayStation 2 лише ліцензованим розробникам. Це дозволило Sony контролювати, хто розробляв ігри для PlayStation 2. Такий варіант дозволяє компаніям переважаючий контроль якості за випуском продукції, і також надає можливості для додаткового доходу від ліцензування.
- Розробка програмного інтерфейсу існує також у вільному доступі. Наприклад, компанія Microsoft робить програмний інтерфейс до Microsoft Windows загально доступним, а компанія Apple, своєю чергою, впроваджує прикладні програмні інтерфейси Carbon та Cocoa, для того, щоб дозволити писати програмне забезпечення під свої платформи.
Прикладні програмні інтерфейси та авторські права
У 2010 році Oracle подала до суду на Google, за поширення нової версії Java, вбудованої у нову версію ОС Android без дозволу на використання JavaAPI, хоча аналогічний договір був наданий на використання проєкту OpenJDK. Суддя виніс рішення у справі Oracle проти Google, про те, що даний програмний інтерфейс не може бути захищеним авторськими правами у США.
Див. також
Джерела
- Reddy, Martin (14 березня 2011). (англ.). Elsevier. ISBN . Архів оригіналу за 28 січня 2022. Процитовано 28 січня 2022.
- Clarke, Steven. . Dr. Dobb's. Архів оригіналу за 3 березня 2022. Процитовано 28 січня 2022.
- X changes its API to retire legacy tiers and endpoints. // By Ivan Mehta/ 5:04 PM GMT+3/ August 23, 2023
- X переходить на новий API: що зміниться. // Автор: Артем Житкевич. 23.08.2023
- . web.archive.org. 28 вересня 2011. Архів оригіналу за 28 вересня 2011. Процитовано 28 січня 2022.
- Parr, Ben (21 травня 2009). . Mashable (англ.). Архів оригіналу за 28 січня 2022. Процитовано 28 січня 2022.
- (PDF). Архів оригіналу (PDF) за 19 жовтня 2021. Процитовано 28 січня 2022.
- . Dr. Dobb's. Архів оригіналу за 4 жовтня 2020. Процитовано 28 січня 2022.
Посилання
- Wikipedia API [Архівовано 5 грудня 2006 у Wayback Machine.]
![]() | Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno sichen 2016 Interfejs programuvannya zastosunkiv prikladni j progra mnij interfe js API angl application programming interface ce sposib zavdyaki yakomu dvi abo bilshe kompʼyuterni programi mozhut spilkuvatisya mizh soboyu Nabir viznachen pidprogram protokoliv vzayemodiyi ta zasobiv dlya stvorennya programnogo zabezpechennya Sprosheno ce nabir chitko viznachenih metodiv dlya vzayemodiyi riznih komponentiv API nadaye rozrobniku zasobi dlya shvidkoyi rozrobki programnogo zabezpechennya API mozhe buti dlya veb bazovanih sistem operacijnih sistem baz danih aparatnogo zabezpechennya programnih bibliotek PriznachennyaOdnim z najposhirenishih priznachen API ye nadannya naboru shiroko vikoristovuvanih funkcij napriklad dlya malyuvannya vikna chi ikonok na ekrani Programisti vikoristovuyut perevagi API u funkcionalnosti takim chinom yim ne dovoditsya rozroblyati vse z nulya API ye abstraktnim ponyattyam programne zabezpechennya sho proponuye deyakij API chasto nazivayut realizaciyeyu angl implementation danogo API U bagatoh vipadkah API ye chastinoyu naboru rozrobki programnogo zabezpechennya vodnochas nabir rozrobki mozhe vklyuchati yak API tak i inshi instrumenti aparatne zabezpechennya otzhe ci dva termini ne ye vzayemozaminyuvani Visokorivnevi API chasto prograyut u gnuchkosti Vikonannya deyakih funkcij nizhchogo rivnya staye nabagato skladnishim abo navit nemozhlivim Versiyi API23 serpnya 2023 roku zgidno z povidomlennyam TechCrunch socialna merezha X ogolosila sho pripinyaye pidtrimku deyakih kincevih tochok ta rivniv dostupu do svogo API pid chas modernizaciyi svoyeyi platformi X takozh zayavila sho vona ogoloshuye zastarilim API versiyi 1 1 ta prosit koristuvachiv perejti na versiyu API 2 0 protyagom nastupnih 30 dniv Prikladi APIPOSIX i en Windows API OpenGL DirectX GDIDetalnij opisNapriklad v movi Java yaksho programist hoche vikoristovuvati klas Scanner klas yakij zchituye informaciyu vid koristuvacha u programah oriyentovanih na tekstovi operaciyi vin importuye biblioteku java util Scanner shob vikoristovuvati metodi klasu Scanner u danomu prikladi nextLine i close Ce priklad z API sho dozvolyaye vzayemodiyati z bibliotekami v movi Java import java util Scanner public class Test public static void main String args System out println Enter your name Scanner input new Scanner System in String name input nextLine System out println Your name is name input close Dokumentaciya Bezlich seredovish rozrobki programnogo zabezpechennya nadayut dokumentaciyu pov yazanu z PPI Prikladnim Programnim Interfejsom u deyakih cifrovih formatah napriklad Perl postavlyayetsya razom z programoyu perldoc f sqrt sqrt EXPR sqrt Return the square root of EXPR If EXPR is omitted returns square root of Only works on non negative operands unless you ve loaded the standard Math Complex module Mova python nadaye instrument pydoc math sqrt Help on built in function sqrt in math math sqrt sqrt sqrt x Return the square root of x Java postavlyayetsya z dokumentaciyeyu organizovanoyu v HTML storinki JavaDoc format a Microsoft rozpodilyaye PPI dokumentaciyu dlya svoyih mov Visual C C Visual Basic F i t in vbudovani v dovidkovu sistemu Visual Studio Prikladnij programnij interfejs v ob yektnooriyentovanih movah V ob yektnooriyentovanih movah prikladnij programnij interfejs zazvichaj vklyuchaye v sebe opis naboru viznachen klasu z naborom form povedinki pov yazanih z cimi klasami Ce abstraktne ponyattya pov yazane z realnimi funkciyami yaki nadani abo nadavatimutsya klasami yaki realizuyutsya v metodah klasu Prikladnij programnij interfejs v comu vipadku mozhna rozglyadati yak sukupnist vsih metodiv yaki publichno dostupni v klasah zazvichaj zvanij interfejs klasu Ce oznachaye sho prikladnij programnij interfejs vkazuye metodi za dopomogoyu yakih vzayemodiye z ob yektami otrimanimi z viznachen klasiv i obroblyaye yih U bilsh zagalnomu plani mozhna viznachiti Prikladnij Programnij Interfejs yak sukupnist usih vidiv ob yektiv yaki mozhna vivesti z viznachennya klasu i pov yazanih z nimi mozhlivih variantiv povedinki Napriklad klas sho predstavlyaye Stack mozhe prosto vistaviti publichno dva metodi Push dlya dodavannya novogo elementa v stek i Pop dlya viluchennya ostannogo punktu idealno roztashovanij na vershini steka U comu vipadku Prikladnij Programnij Interfejs mozhe buti interpretovanim yak dva metodi pop i push abo bilsh shiroko vikoristovuyetsya variant koli mozhna vikoristovuvati element tipu Stack yakij realizuye povedinku steka nadayuchi jomu mozhlivist dlya dodavannya vidalennya elementiv z vershini Druga interpretaciya vidayetsya bilsh dorechnoyu v dusi ob yektnooriyentovanogo pidhodu Yakist dokumentaciyi pov yazanoyi z Prikladnim Programnim Interfejsom ye chasto klyuchovim faktorom sho viznachaye jogo uspishnist z tochki zoru prostoti vikoristannya Biblioteki i platformi prikladnih programnih interfejsiv PPI yak pravilo pov yazanij iz bibliotekami programnogo zabezpechennya PPI opisuye i vkazuye ochikuvanu povedinku v toj chas yak biblioteka ye faktichnoyu realizaciyeyu danogo naboru pravil Odin PPI mozhe mati dekilka realizacij abo zhodnoyi buduchi abstraktnim u viglyadi riznih bibliotek yaki mayut takij zhe interfejs Prikladnij programnij interfejs takozh mozhe buti pov yazanim z platformami programuvannya platforma mozhe buti zasnovana na kilkoh bibliotekah realizuye dekilka interfejsiv PPI ale na vidminu vid zvichajnogo vikoristannya PPI dostup do povedinki vbudovanij v platformu oposeredkovanij shlyahom rozshirennya jogo zmistu novimi klasami i vstavlenij v samu platformu Krim togo zagalnij potik upravlinnya programi mozhe buti pid kontrolem abonenta Prikladnij programnij interfejs ta protokoli Prikladnij programnij interfejs mozhe buti takozh realizaciyeyu protokolu Koli PPI realizuye protokol vin mozhe buti zasnovanim na proksi metodah viddalenih viklikiv sho zasnovani na protokoli zv yazku Rol PPI mozhe polyagati same v tomu shob prihovati detali transportnogo protokolu Napriklad RMI ye PPI yakij realizuye protokol abo JRMP IIOP yak RMI IIOP Protokoli yak pravilo rozpodilyayutsya mizh riznimi tehnologiyami i zazvichaj dozvolyayut riznim tehnologiyam obminyuvatisya informaciyeyu diyuchi yak abstrakciya mizh dvoma svitami PPI yak pravilo ye specifichnim dlya konkretnoyi tehnologiyi zvidsi interfejsi danoyi movi ne mozhut buti vikoristani na inshih movah yaksho vikliki funkciyi ne budut peretvoreni z konkretnoyi adaptaciyi biblioteki Prikladnij programnij interfejs spilnogo vikoristannya z dopomogoyu virtualnoyi mashini Deyaki movi sered yakih taki sho pracyuyut na virtualnih mashinah napriklad movi sumisni z NET CLI seredovisha CLR i JVM sumisnih mov u virtualnij mashini Java mozhut dilitisya programnimi interfejsami U comu vipadku virtualna mashina dozvolyaye movi vzayemodiyi zavdyaki spilnomu znamenniku virtualnoyi mashini sho abstraguyetsya vid konkretnoyi movi vikoristovuvati promizhnij bajt kod i jogo movu Prikladnij programnij interfejs u WEBPri vikoristanni prikladnogo programnogo interfejsu v konteksti vebrozrobki yak pravilo PPI viznachayetsya naborom povidomlen zapitu HTTP takozh viznachayetsya struktura povidomlen vidpovidej zazvichaj u rozshirenni movi rozmitki XML abo v formati ob yektnogo zapisu JavaScript JSON U toj chas yak prikladnij programnij interfejs u Web istorichno buv praktichno sinonimom dlya vebsluzhbi ostannim chasom tendenciya zminilas tak zvanij Web 2 0 na vidhid vid Simple Object Access Protocol SOAP na osnovi vebservisiv i servis oriyentovanoyi arhitekturi SOA na bilsh pryami peredachi reprezentativnogo stanu REST stiliv vebresursiv ta resursooriyentovanoyi arhitekturi ROA Chastina ciyeyi tendenciyi pov yazana z ruhom Semantichnogo vebresursu do Opisu Platform RDF Koncepciyi rozvitku vebtehnologij inzhenernih ontologij Prikladni programni interfejsi u Web sho dozvolyayut kombinuvati dekilkoma prikladnimi programnimi interfejsami v novi dodatki nazivayut gibridnimi Politika vprovadzhennyaIsnuye dva osnovnih varianti vprovadzhennya prikladnogo programnogo interfejsu Zahist informaciyi pro programnij interfejs vid shirokogo zagalu Napriklad kompaniya Sony dozvolila rozroblyati programnij interfejs dlya PlayStation 2 lishe licenzovanim rozrobnikam Ce dozvolilo Sony kontrolyuvati hto rozroblyav igri dlya PlayStation 2 Takij variant dozvolyaye kompaniyam perevazhayuchij kontrol yakosti za vipuskom produkciyi i takozh nadaye mozhlivosti dlya dodatkovogo dohodu vid licenzuvannya Rozrobka programnogo interfejsu isnuye takozh u vilnomu dostupi Napriklad kompaniya Microsoft robit programnij interfejs do Microsoft Windows zagalno dostupnim a kompaniya Apple svoyeyu chergoyu vprovadzhuye prikladni programni interfejsi Carbon ta Cocoa dlya togo shob dozvoliti pisati programne zabezpechennya pid svoyi platformi Prikladni programni interfejsi ta avtorski pravaU 2010 roci Oracle podala do sudu na Google za poshirennya novoyi versiyi Java vbudovanoyi u novu versiyu OS Android bez dozvolu na vikoristannya JavaAPI hocha analogichnij dogovir buv nadanij na vikoristannya proyektu OpenJDK Suddya vinis rishennya u spravi Oracle proti Google pro te sho danij programnij interfejs ne mozhe buti zahishenim avtorskimi pravami u SShA Div takozhKomp yuterna terminologiya Operacijna sistema Zastosunok DodatokDzherelaReddy Martin 14 bereznya 2011 angl Elsevier ISBN 978 0 12 385004 1 Arhiv originalu za 28 sichnya 2022 Procitovano 28 sichnya 2022 Clarke Steven Dr Dobb s Arhiv originalu za 3 bereznya 2022 Procitovano 28 sichnya 2022 X changes its API to retire legacy tiers and endpoints By Ivan Mehta 5 04 PM GMT 3 August 23 2023 X perehodit na novij API sho zminitsya Avtor Artem Zhitkevich 23 08 2023 web archive org 28 veresnya 2011 Arhiv originalu za 28 veresnya 2011 Procitovano 28 sichnya 2022 Parr Ben 21 travnya 2009 Mashable angl Arhiv originalu za 28 sichnya 2022 Procitovano 28 sichnya 2022 PDF Arhiv originalu PDF za 19 zhovtnya 2021 Procitovano 28 sichnya 2022 Dr Dobb s Arhiv originalu za 4 zhovtnya 2020 Procitovano 28 sichnya 2022 PosilannyaWikipedia API Arhivovano 5 grudnya 2006 u Wayback Machine Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi