Interfejs programowania aplikacji: Różnice pomiędzy wersjami

poprawki, uzupełnienia
m (Zamieniam przestarzały tag 'source' na 'syntaxhighlight')
(poprawki, uzupełnienia)
'''ApplicationInterfejs Programmingprogramowania Interfaceaplikacji'''<ref name=Standard_API /><ref name=dyrektywa>Dyrektywa Parlamentu Europejskiego i Rady (UE) 2018/1972 z dnia 11 grudnia 2018 r. ustanawiająca Europejski kodeks łączności elektronicznej ({{CELEX|32018L1972}}).</ref><ref>{{Cytuj stronę |url = https://monitorfx.pl/api/ |tytuł = Interfejs programowania aplikacji ('''API''',) również|data dostępu = 2020-04-19 | opublikowany = MonitorfFX}}</ref><ref>{{Cytuj stronę |url = https://pclab.pl/art17356-2.html |tytuł = Słowniczek pojęć |data dostępu = 2020-04-19 | opublikowany = PCLab}}</ref><ref>{{Cytuj stronę |url = http://www.itcmp.pwr.wroc.pl/~jwach/Techniczny%20EN-PL.htm |tytuł = Słownik Politechniki Wrocławskiej |data dostępu = 2020-04-19 | opublikowany = itcmp.pwr.wroc }}</ref> '''interfejs programistyczny aplikacji'''<ref name=Standard_API>{{Cytuj stronę |url = https://www.gov.pl/web/popcwsparcie/standard-api-dla-udostepniania-danych |tytuł = Standard API dla udostępniania danych |język = pl |data dostępu = 2020-03-11}}</ref>, interfejs programowania aplikacji<ref name=Standard_API />, '''interfejs programu aplikacyjnego'''<ref>Dyrektywa Parlamentuname=dyrektywa Europejskiego i Rady (UE) 2018/1972 z dnia 11 grudnia 2018 r. ustanawiająca Europejski kodeks łączności elektronicznej ({{CELEX|32018L1972}}).</ref><ref>Ustawa z dnia 16 lipca 2004 – [[Prawo telekomunikacyjne]] ({{Dziennik Ustaw|2019|2460}}).</ref>, skrótowiec '''API''' (od [[język angielski|ang.]] ''application programming interface'') – zbiór reguł ściśle opisujący, w jaki sposób [[Program komputerowy|programy]] lub podprogramy komunikują się ze sobą<ref name=API>{{Cytuj stronę |url = https://dane.gov.pl/media/ckeditor/2018/12/05/standard-api_03-12-2018.pdf |tytuł = Standard API (interfejsu programistycznego aplikacji) |język = pl |strony = 3 |data dostępu = 2020-03-11}}</ref>.
 
API jest przede wszystkim specyfikacją wytycznych jak powinna przebiegać interakcja między komponentami programowymi. Implementacja API jest zestawem rutyn, protokołów i rozwiązań informatycznych do budowy aplikacji komputerowych. Dodatkowo API może korzystać z komponentów [[Graficzny interfejs użytkownika|graficznego interfejsu użytkownika]] (GUI). Dobre API ułatwia budowę oprogramowania sprowadzając ją do łączenia przez programistę bloków elementów w ustalonej konwencji<ref>{{Cytuj stronę |url = https://www.gov.pl/attachment/ae0e670a-d16d-443d-a994-55727e18288b |tytuł = OD.API standardy interfejsu programistycznego aplikacji |język = pl |strony = 3 |data dostępu = 2020-03-11}}</ref>.
 
Definiuje się go na poziomie [[kod źródłowy|kodu źródłowego]] dla składników oprogramowania, na przykład [[oprogramowanie użytkowe|aplikacji]], [[biblioteka programistyczna|bibliotek]], [[system operacyjny|systemu operacyjnego]]. Zadaniem interfejsu programowania aplikacji jest dostarczenie odpowiednich specyfikacji [[podprogram]]ów, [[struktura danych|struktur danych]], [[klasa (programowanie obiektowe)|klas obiektów]] i wymaganych [[protokół komunikacyjny|protokołów komunikacyjnych]].
Co więcej, istnieją API, które zostały zdefiniowane w sposób niezależny od danej platformy (systemu operacyjnego, języka programowania), dla których istnieje możliwość wygenerowania API dla specyficznej platformy. Takie interfejsy definiuje się zwykle używając [[Interface Description Language|języków opisu interfejsów]] (ang. ''interface description language,'' IDL'').''<ref>Przykładem znanego języka IDL jest [https://www.corba.org/omg_idl.htm OMG IDL] dla systemu [[Common Object Request Broker Architecture|CORBA]] {{lang|en}}.</ref>
 
Przykładowe API to [[POSIX]] (API zdefiniowane w [[C (język programowania)|jęz. C]]) i [[Windows API]] (API zdefiniowane w jęz. C)<ref name="petzold_windows">Charles Petzold, ''Programowanie Windows. Kompletny podręcznik Win32 API do Windows 95/98/NT''. Wydanie II'', Wydawnictwo RM.</ref>, a w przypadku [[Grafika 3D|grafiki 3D]] – [[Vulkan (API)|Vulkan]] (API zdefiniowane dla jęz. C, z wieloma tzw. bindingami m.in. dla [[C++|jęz. C++]], [[Rust (język programowania)|jęz. Rust]] i innych) oraz [[OpenGL]]<ref>[http://www.opengl.org/ OpenGL – The Industry’s Foundation for High Performance Graphics] {{lang|en}}.</ref> (API zdefiniowane dla wielu języków, m.in. C, C++, [[Java]], [[Python]]).
 
Jednym z typów interfejsów API, które przebiły się do szerszej świadomości, są [[WebAPI|API webowe]] ({{W języku|en|web APIs}}), zwane też API internetowymi. Jest to rodzaj interfejsów API, w których funkcje są udostępniane jako zasób w sieci. Bieżące wersje systemów API webowych pozwalają w bardzo łatwy sposób integrować informacje z sieci z aplikacjami, poszerzając ich funkcje lub umożliwiając współdziałać (np. z sieciami społecznościowymi)<ref name="jacobson_et_al">Daniel Jacobson, Dan Woods, Greg Brail, ''Interfejs API: Strategia programisty'', Helion, Gliwice, 2015.</ref>.
== API webowe ==
{{Osobny artykuł|WebAPI}}
Jednym z typów interfejsów API, które przebiły się do szerszej świadomości, są API webowe ({{W języku|en|web APIs}}), zwane też API internetowymi. Jest to rodzaj interfejsów API, w których funkcje są udostępniane jako zasób w sieci. Bieżące wersje systemów API webowych pozwalają w bardzo łatwy sposób integrować informacje z sieci z aplikacjami, poszerzając ich funkcje lub umożliwiając współdziałać (np. z sieciami społecznościowymi)<ref name="jacobson_et_al">Daniel Jacobson, Dan Woods, Greg Brail, ''Interfejs API: Strategia programisty'', Helion, Gliwice, 2015.</ref>.
 
== Przykłady ==