Array ( [0] => 15482300 [id] => 15482300 [1] => cswiki [site] => cswiki [2] => API [uri] => API [3] => Screenshot of NASA API documentation.png [img] => Screenshot of NASA API documentation.png [4] => [day_avg] => [5] => [day_diff] => [6] => [day_last] => [7] => [day_prev_last] => [8] => [oai] => [9] => [is_good] => [10] => [object_type] => [11] => 1 [has_content] => 1 [12] => [oai_cs_optimisticky] => ) Array ( [0] => {{Různé významy}} [1] => '''API''' (zkratka pro '''application programming interface''') označuje v [[Informatika|informatice]] [[Rozhraní (informatika)|rozhraní]] pro [[programování]] [[Aplikační software|aplikací]]. Tento termín používá [[softwarové inženýrství]]. Jde o sbírku procedur, funkcí, tříd či protokolů nějaké [[knihovna (programování)|knihovny]] (ale třeba i jiného programu nebo [[Jádro (informatika)|jádra operačního systému]]), které může [[programátor]] využívat. API určuje, jakým způsobem jsou funkce knihovny volány ze [[Zdrojový kód|zdrojového kódu]] programu. Rozhraní, které se vytváří při [[Překladač|kompilaci]] a je využíváno při běhu programu, se nazývá [[ABI]]. [2] => [3] => Funkce API jsou programové celky, které programátor používá namísto toho, aby je sám naprogramoval. [4] => [5] => == Příklady == [6] => Důležitá jsou například grafická API ([[OpenGL|OpenGL]], [[DirectX]] a [[Vulkan]]), která jsou standardizována a [[programátor]] je může v programu využít. Způsob jejich vykonání pak záleží na konkrétním počítači, na výkonnosti grafické karty, případně může být vykreslování kompletně softwarově [[emulátor|emulováno]] nějakou programovou knihovnou (např. [[Mesa 3D]]). [7] => [8] => V [[Operační systém|operačním systému]] [[Microsoft Windows]] se rozlišuje volání knihovních funkcí a [[systémové volání]]. V programech se používá jednotné [[Windows API]]. [9] => [10] => == API operačních systémů == [11] => V současné době jsou nejrozšířenější dva standardy API OS: POSIX (IEEE) a Win32 (Microsoft). Rozhraní [[POSIX]] bylo vytvořeno pro standardizaci [[UN*X|unixových]] operačních systémů, rozhraní [[Windows API]] reprezentuje rozhraní pro systém s [[Mikrojádro|mikrojádrem]] (absence [[Systémové volání|systémových volání]]). [12] => [13] => == Vlastnosti == [14] => API je abstrakce, která definuje a popisuje rozhraní pro interakci s řadou funkcí, používaných součástí softwarového systému. Software, který poskytuje funkce popsané API říká, že je implementován v API. API může být: [15] => [16] => * obecné – jedná se o úplný soubor rozhraní API, který je zasílán v knihovnách programovacího jazyka (např. [[Standard Template Library]] v C ++ nebo Java API) [17] => * konkrétní – chce řešit konkrétní problémy, jako jsou [[Mapy Google]] nebo Java API for XML Web Services [18] => [19] => * jazykově závislé – to znamená, že je k dispozici pouze v daném programovacím jazyce, pomocí syntaxí a základních prvků tohoto jazyka, aby API bylo vhodné pro použití v této souvislosti [20] => * jazykově nezávislé – to znamená, že lze volat z několika programovacích jazyků, což je žádoucí vlastnost pro službu orientovanou v API, která není vázána na daný proces nebo systém, a může být poskytnuta jako [[Remote procedure call|RPC]] nebo [[Webová služba]] [21] => [22] => Například internetová stránka, která uživatelům umožňuje hledání místních restaurací, je schopna si převzít vrstvu z Google Maps, protože Google Maps API to umožňuje. Google Maps API kontroluje, jaké informace třetí síť může chytit, a co lze s nimi udělat. „API“ může být používán k odkazování na kompletní rozhraní, jednu funkci, nebo dokonce na soubor více API poskytovaných organizací. Proto je rozsah výzkumu obvykle určen osobou nebo dokumentem, který sděluje informace. [23] => [24] => == Web API == [25] => {{Podrobně|Webová služba}} [26] => [27] => Při použití v kontextu vývoje webu je API typicky definováno [[Hypertext Transfer Protocol|HTTP]] a požaduje zprávy spolu s definicí struktury odpovědí obvykle v [[Extensible Markup Language|XML]] nebo [[JavaScript Object Notation|JSON]] formátu. Zatímco „Web API“ je prakticky synonymem pro [[Webová služba|Webovou službu]], nedávný trend (tak zvaný [[Web 2.0|Web 2.0]]) se vzdaluje od [[Simple Object Access Protocol]], služby založené na více přímých [[Representational State Transfer|REST]] stylů komunikace. Web API umožňují kombinaci různých služeb do nových aplikací známých jako ''mashups''. [28] => [29] => == Implementace == [30] => Standard [[POSIX]] definuje API, které pokrývá širokou škálu běžně používaných funkcí a umožňuje je používat na mnoha různých systémech (typicky [[UN*X|unixové systémy]] – [[Linux]], [[OS X|Mac OS X]], různé [[BSD]] systémy atd.). Použití toho API však vyžaduje na každé platformě danou aplikaci znovu přeložit ([[Překladač|překompilovat]]). Kompatibilní API však umožňuje naprogramovat jeden zdrojový kód tak, aby beze změn fungoval na libovolném systému implementujícím toto API. [[Portace softwaru|Přenositelnost]] je výhodná jak pro tvůrce software (již existující produkt lze snadno přenést na jinou platformu), tak pro uživatele (mohou instalovat starší software na své novější systémy bez nutnosti zakoupení upgrade), i když to často vyžaduje přenášet i doplňující [[Knihovna (programování)|knihovny]]. [31] => [32] => [[Microsoft]] pro vytvoření zpětné kompatibility [[Windows API]] (Win32, tj. pro možnost běhu starších aplikací na novějších verzích systému Windows) poskytuje možnost nastavit specifický „režim kompatibility“. Apple zastává v tomto ohledu méně vstřícný postoj, což mu poskytuje větší svobodu při vývoji aplikací za cenu označení starších programů jako „zastaralých“. [33] => [34] => Mezi [[UN*X|unixovými]] operačními systémy existuje mnoho příbuzných, ale navzájem nekompatibilních operačních systémů, přestože běží na společné technické platformě (zejména [[IBM PC kompatibilní]] systémy). Bylo zde mnoho pokusů o standardizaci API tak, aby výrobci software mohli šířit jedinou binární formu aplikace pro všechny tyto systémy, avšak do dnešního dne se žádný z nich nesetkal s větším úspěchem. Existuje projekt LSB ([[Linux Standard Base]]) pro platformu [[Linux]] a [[BSD]] ([[FreeBSD]], [[NetBSD]], [[OpenBSD]]), který by mohl zaručit různé úrovně kompatibility API a zajistit [[Zpětná kompatibilita|zpětnou kompatibilitu]] (pro programy napsané pro starší verze, které běží na novějších distribucích systému) a multiplatformní kompatibilitu (umožňuje spuštění kódu určeného pro jinou platformu bez nutnosti rekompilace). [35] => [36] => == Popis API v unixovém systému == [37] => API popisuje, jak se daná funkce volá a co provede (resp. co vrátí jako výsledek). V [[UN*X|unixových]] systémech popisuje [[hlavičkový soubor]] math.h definice matematických funkcí, které jsou k dispozici v knihovně libm pro [[C (programovací jazyk)|programovací jazyk C]]. Hlavičkový soubor definuje prototypy funkcí, pomocí kterých je nadefinováno, jaké jsou parametry a jaké jsou návratové hodnoty (výsledky). Například [[Manuálové stránky (Unix)|manuálová stránka]] pro funkci sqrt() (dostupná například příkazem man 3 sqrt) popisuje funkci takto (zkráceno): [38] => [39] => SYNTAXE [40] => #include [41] => double sqrt (double x); [42] => float sqrtf (float X); [43] => [44] => POPIS [45] => Funkce sqrt() vypočítá druhou odmocninu z argumentu. [46] => [47] => NÁVRATOVÝ KÓD [48] => Při úspěšném výpočtu je vrácena druhá odmocnina (jestliže X je reálné a kladné). [49] => [50] => Funkce tedy vrací druhou odmocninu kladného desetinného čísla (jednoduché nebo dvojnásobná přesnosti) jako desetinné číslo. API je zde pro jazyk C popsáno v manuálové stránce. [51] => [52] => == API v objektově-orientovaném jazyce == [53] => {{Upravit část}} [54] => V [[Objektově orientovaný jazyk|objektově orientovaných jazycích]], API obvykle obsahuje popis souboru a definic tříd, a chování spojených s těmito třídami. Chování je soubor pravidel, jak objekt, odvozený z této třídy bude jednat v daných situacích. Tento abstraktní pojem, je spojen se skutečnou exponenciální funkcí, nebo zpřístupněny pro třídy, které jsou prováděny, pokud jde o [[Třída (programování)|třídy]] metod. [55] => [56] => API v tomto případě může být chápána jako souhrn všech způsobů veřejných tříd (obvykle nazvaná jako třída rozhraní). To znamená, že API stanoví metody, které zvládají objekty odvozené z definic tříd. Obecněji, jeden může vidět API jako sbírku všech možných objektů, které lze odvodit z definic tříd, a jejich chování. Použití je opět zprostředkováno metodami, ale v tomto výkladu, jsou metody chápány jako technické detaily, jak je implementováno chování. [57] => [58] => Například: třída představující zásobník může vystavit veřejně dvě metody push() (přidat nové položky do zásobníku), a pop()(extrahovat poslední položku, v ideálním případě umístěnou na vrcholu zásobníku). [59] => [60] => API v tomto případě mohou být vykládány jako dvě metody pop()push(), nebo obecněji jako představa, že lze používat položky typu zásobníku, který implementuje chování zásobníku (hromada vystavila své top přidat / odebrat prvky). [61] => [62] => Tento koncept lze provádět na místě, kde třída rozhraní API nemá metody pro všechno, ale pouze se s nimi asociuje . Například jazyk [[Java (programovací jazyk)|Java]] API obsahuje rozhraní Serializable, což je rozhraní, které vyžaduje třída, která implementuje její chování v serializovaném módě. To nevyžaduje mít žádné veřejné metody, ale vyžaduje, aby třída měla povolení zastoupení, které lze uložit kdykoliv. To obvykle platí pro všechny třídy containing, které jsou jednoduché a datové a nemají žádnou vazbu na externí zdroje nebo jedno otevřené připojení k souboru, vzdálený systém nebo externí zařízení. [63] => [64] => V tomto smyslu, v [[Objektově orientovaný jazyk|objektově orientovaných jazycích]], API definuje sadu chování, případně zprostředkovaný soubor třídy metod. V těchto jazycích je API stále distribuována jako knihovna. Například jazyk Java knihoven, zahrnující soubor API, který je poskytovány ve formě [[JDK]] používaný vývojáři k vytváření nových Java programů. [[JDK]] obsahuje dokumentaci API v notaci [[Javadoc]]. Kvalita dokumentace k API je často určujícím faktorem jeho úspěchu, pokud jde o snadnost použití. [65] => [66] => == Odkazy == [67] => [68] => === Reference === [69] => {{Překlad [70] => | jazyk = en [71] => | článek = Application programming interface [72] => | revize = 340535546 [73] => }} [74] => [75] => === Související články === [76] => * [[Rozhraní (informatika)|Rozhraní]] [77] => * [[knihovna (programování)|Knihovna]] [78] => * [[ABI]] (application binary interface) [79] => * [[Google#Google Web API|Google Web API]] [80] => * [[Facebook#Technick.C3.A9 detaily|Facebook API]] [81] => [82] => === Externí odkazy === [83] => * {{commonscat}} [84] => * {{Wikislovník|heslo=API}} [85] => [86] => {{Pahýl}} [87] => {{Autoritní data}} [88] => [89] => [[Kategorie:Rozhraní pro programování aplikací]] [90] => [[Kategorie:Programové knihovny]] [91] => [[Kategorie:Rozhraní]] [] => )
good wiki

API

API (zkratka pro application programming interface) označuje v informatice rozhraní pro programování aplikací. Tento termín používá softwarové inženýrství.

More about us

About

Expert Team

Vivamus eget neque lacus. Pellentesque egauris ex.

Award winning agency

Lorem ipsum, dolor sit amet consectetur elitorceat .

10 Year Exp.

Pellen tesque eget, mauris lorem iupsum neque lacus.

You might be interested in

,'UN*X','Windows API','Překladač','Webová služba','knihovna (programování)','BSD','POSIX','JDK','programátor','Objektově orientovaný jazyk','ABI','Rozhraní (informatika)'