Interfejs programowania aplikacji: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja nieprzejrzana] |
Usunięta treść Dodana treść
m przeglądanie zmian + „dopracować źródła”: czytelnicy szukają tu też odpowiedzi na pytanie „skąd o tym wiadomo?” |
Uzupełniono o źródła i trochę przykłądów. Dodano odniesienie do WebAPIs |
||
Linia 1:
'''Interfejs programowania aplikacji''', '''interfejs programistyczny aplikacji''', '''Interfejs API''' lub po prostu '''API''' (od [[język angielski|ang.]] ''application programming interface'') – sposób, rozumiany jako ściśle określony zestaw reguł i ich opisów, w jaki [[program komputerowy|programy komputerowe]] komunikują się między sobą<ref>{{Cytuj stronę |url = http://www.webopedia.com/TERM/A/API.html |tytuł = What is Application Program Interface (API)? |nazwisko = Beal |imię = Vangie |opublikowany = Webopedia.com |język = en |archiwum = http://web.archive.org/web/20150616135419/http://www.webopedia.com/TERM/A/API.html |zarchiwizowano = 2015-06-16 |data dostępu = 2015-06-16}}</ref>.▼
▲'''Interfejs programowania aplikacji''', '''interfejs programistyczny aplikacji''', '''API''' (od [[język angielski|ang.]] ''application programming interface'') – sposób, rozumiany jako ściśle określony zestaw reguł i ich opisów, w jaki [[program komputerowy|programy komputerowe]] komunikują się między sobą<ref>{{Cytuj stronę |url = http://www.webopedia.com/TERM/A/API.html |tytuł = What is Application Program Interface (API)? |nazwisko = Beal |imię = Vangie |opublikowany = Webopedia.com |język = en |archiwum = http://web.archive.org/web/20150616135419/http://www.webopedia.com/TERM/A/API.html |zarchiwizowano = 2015-06-16 |data dostępu = 2015-06-16}}</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]].
Definicja API może być niezależna od jego implementacji. Przykładowo, istnieje wiele realizacji API [[Biblioteka standardowa języka C|biblioteki standardowej języka C]], które współdzielą interfejs
Co więcej, istnieją interfejsy 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 [[CORBA]]{{lang|en}}</ref>▼
Przykładowe interfejsy API to [[POSIX]] (API zdefiniowane w [[C (język programowania)|jęz. C]]) i [[Windows API]] (API zdefiniowane w [[C (język programowania)|jęz. C]])<ref name="petzold_windows">Charles Petzold, ''Programowanie Windows. Kompletny podręcznik Win32 API do Windows 95/98/NT.
▲Co więcej, istnieją interfejsy 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> (API zdefiniowane dla wielu języków, m.in. [[C (język programowania)|jęz. C]], [[C++|jęz. C++]], [[Java|jęz. Java]], [[Python|jęz. Python]]).
== API Webowe ==
▲Przykładowe interfejsy API to [[POSIX]] (API zdefiniowane w [[C (język programowania)|jęz. C]]) i [[Windows API]] (API zdefiniowane w [[C (język programowania)|jęz. C]]), a w przypadku [[Grafika 3D|grafiki 3D]] – [[Vulkan (API)|Vulkan]] (API zdefiniowane dla [[C (język programowania)|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]] (API zdefiniowane dla wielu języków, m.in. [[C (język programowania)|jęz. C]], [[C++|jęz. C++]], [[Java|jęz. Java]], [[Python|jęz. Python]]).
{{Osobny artykuł|WebAPI}}
Jednym z typów interfejsów API, które przebiły się do szerszej świadomości są API Webowe (ang. ''Web APIs''). Jest to rodzaj interfejsów API, w których funkcje są udostępniane jako zasób w sieci. Bieżące wersje systemy 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">{{pl}}Daniel Jacobson, Dan Woods, Greg Brail, ''Interfejs API: Strategia programisty'', Helion, Gliwice, 2015</ref>.
== Przykłady ==
|