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

[wersja przejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
Zmiana nazwy API z "Vulcan" na "Vulkan".
Rozwinięcie opisu o API (wielość implementacji), języki IDL. Przykład definicji i użycia API w jęz. C.
Linia 3:
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 programistyczny aplikacji (API).
Przykładami takiego interfejsu są [[POSIX]] i [[Windows API]], a w przypadku [[Grafika 3D|grafiki 3D]] – [[Vulkan (API)|Vulkan]].
 
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).''
 
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]]).
 
== Przykłady ==
W języku C definicja interfejsu programistycznego aplikacji to składa się przede wszystkim z listy dostępnych funkcji (w formie prototypów funkcji), wraz z towarzyszącymi im przeważnie definicjami stałych, zmiennych oraz struktur danych, które mogą być użyte jako ich parametry. Przykładowa lista prototypów funkcji z API [[Biblioteka standardowa języka C|biblioteki standardowej języka C]] (plik nagłówkowy <stdio.h>) to:
<source lang="C">
int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);
</source>
W prototypach funkcji (<code>printf</code>, <code>fprintf</code>, <code>sprintf</code>, <code>snprintf</code>) użyte są identyfikatory struktur i typów (<code>FILE</code> i <code>size_t</code>), które są również częścią definicji API (ich definicja nie została zamieszczona w przykładzie).
 
Przykład użycia jednej z powyższych funkcji z API jest następujący:
<source lang="C">
return printf("Hello world");
</source>
 
== Zobacz też ==