<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.multimediaexpo.cz/mmecz/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>http://www.multimediaexpo.cz/mmecz/index.php?action=history&amp;feed=atom&amp;title=API</id>
		<title>API - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="http://www.multimediaexpo.cz/mmecz/index.php?action=history&amp;feed=atom&amp;title=API"/>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=API&amp;action=history"/>
		<updated>2026-05-01T22:16:19Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.16.5</generator>

	<entry>
		<id>http://www.multimediaexpo.cz/mmecz/index.php?title=API&amp;diff=465171&amp;oldid=prev</id>
		<title>Sysop: 1 revizi</title>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=API&amp;diff=465171&amp;oldid=prev"/>
				<updated>2013-12-16T21:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;1 revizi&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 16. 12. 2013, 21:31&lt;/td&gt;
		&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Sysop</name></author>	</entry>

	<entry>
		<id>http://www.multimediaexpo.cz/mmecz/index.php?title=API&amp;diff=465170&amp;oldid=prev</id>
		<title>Sysop: Nahrazení textu</title>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=API&amp;diff=465170&amp;oldid=prev"/>
				<updated>2011-10-19T15:41:14Z</updated>
		
		<summary type="html">&lt;p&gt;Nahrazení textu&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''API''' (zkratka pro '''Application Programming Interface''') označuje v [[Informatika (počítačová věda)|informatice]] [[rozhraní]] pro [[programování]] [[Aplikace|aplikací]]. Tento termín používá [[softwarové inženýrství]]. Jde o sbírku procedur, funkcí či tříd nějaké [[knihovna (programování)|knihovny]] (ale třeba i jiného programu nebo [[kernel|jádra operačního systému]]), které může [[programátor]] využívat. API určuje, jakým způsobem se funkce knihovny volají ze 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]].&lt;br /&gt;
== Příklady ==&lt;br /&gt;
Důležitá jsou například grafická API ([[OpenGL]] a [[DirectX]]), 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]]).&lt;br /&gt;
V [[Operační systém|operačním systému]] [[Microsoft Windows]] není nerozlišeno voláním knihovních funkcí a [[Systémové volání|systémová volání]]. V programech se používá jednotné [[Windows API]].&lt;br /&gt;
Funkce API jsou programové celky, které programátor používá namísto toho, aby je sám naprogramoval.&lt;br /&gt;
== API operačních systémů ==&lt;br /&gt;
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í]]).&lt;br /&gt;
== Vlastnosti ==&lt;br /&gt;
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:&lt;br /&gt;
* 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) &lt;br /&gt;
* konkrétní – chce řešit konkrétní problémy, jako jsou [[Mapy Google]] nebo Java API for XML Web Services&lt;br /&gt;
* 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&lt;br /&gt;
* 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]]&lt;br /&gt;
Například internetové stránky, které uživatelům umožňují 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.&lt;br /&gt;
== Web API ==&lt;br /&gt;
{{Hlavní článek|Webová služba}}&lt;br /&gt;
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]]) 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''.&lt;br /&gt;
== Implementace ==&lt;br /&gt;
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]], [[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]].&lt;br /&gt;
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“.&lt;br /&gt;
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ě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).&lt;br /&gt;
== Pokročilé vysvětlení ==&lt;br /&gt;
API popisuje, jak se daná funkce volá a co provede (resp. co vrátí jako výsledek). Například v [[UN*X|unixových]] systémech popisuje [[hlavičkový soubor]] &amp;lt;code&amp;gt;math.h&amp;lt;/code&amp;gt; definice matematických funkcí, které jsou k dispozici v knihovně &amp;lt;code&amp;gt;libm&amp;lt;/code&amp;gt; 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 &amp;lt;code&amp;gt;sqrt()&amp;lt;/code&amp;gt; (dostupná například příkazem &amp;lt;code&amp;gt;man 3 sqrt&amp;lt;/code&amp;gt;) popisuje funkci takto (zkráceno):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
SYNTAXE&lt;br /&gt;
       #include &amp;lt;math.h&amp;gt;&lt;br /&gt;
       double sqrt (double x);&lt;br /&gt;
       float sqrtf (float X);&lt;br /&gt;
POPIS&lt;br /&gt;
       Funkce sqrt() vypočítá druhou odmocninu z argumentu.&lt;br /&gt;
NÁVRATOVÝ KÓD&lt;br /&gt;
       Při úspěšném výpočtu je vrácena druhá odmocnina (jestliže X je reálné a kladné).&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Funkce tedy vrací druhou odmocninu kladného desetinného čísla (jednoduché nebo dvojnásobná přesnosti) jako desetinné číslo. API je zde tedy pro jazyk C popsáno manuálovou stránkou.&lt;br /&gt;
== API v objektově-orientovaném jazyce ==&lt;br /&gt;
{{Upravit část}} &amp;lt;!-- text je jako strojový překlad --&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
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ápany jako technické detaily, jak je implementováno chování.&lt;br /&gt;
Například: třída představující zásobník může vystavit veřejně dvě metody &amp;lt;code&amp;gt;push()&amp;lt;/code&amp;gt; (přidat nové položky do zásobníku), a &amp;lt;code&amp;gt;pop()&amp;lt;/code&amp;gt;(extrahovat poslední položku, v ideálním případě umístěnou na vrcholu zásobníku).&lt;br /&gt;
API v tomto případě mohou být vykládány jako dvě metody &amp;lt;code&amp;gt;pop()&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;push()&amp;lt;/code&amp;gt;, 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).&lt;br /&gt;
Tento koncept lze provádět na místě, kde třída rozhraní API nemá metody pro všechno, ale pouze se s nimi asocijuje . Například jazyk [[Java_(programovací_jazyk)|Java]] API obsahuje rozhraní &amp;lt;code&amp;gt;Serializable&amp;lt;/code&amp;gt;, 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í.&lt;br /&gt;
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í.&lt;br /&gt;
&lt;br /&gt;
== Související články ==&lt;br /&gt;
* [[ABI]] (application binary interface)&lt;br /&gt;
* [[knihovna (programování)|Knihovna]]&lt;br /&gt;
* [[Google#Google Web API|Google Web API]]&lt;br /&gt;
* [[Facebook#Technick.C3.A9 detaily|Facebook API]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Článek z Wikipedie}}&lt;br /&gt;
[[Kategorie:Rozhraní pro programování aplikací]]&lt;br /&gt;
[[Kategorie:Programové knihovny]]&lt;br /&gt;
[[Kategorie:Rozhraní]]&lt;/div&gt;</summary>
		<author><name>Sysop</name></author>	</entry>

	</feed>