📑 Table of Contents

Interfejs programowania aplikacji[1][2][3][4][5], interfejs programistyczny aplikacji[1][6][7][8], interfejs programu aplikacyjnego[2] (ang. application programming interface, API) – zbiór reguł ściśle opisujący, w jaki sposób programy lub podprogramy komunikują się ze sobą[9].

API jest przede wszystkim specyfikacją wytycznych, jak powinna przebiegać interakcja między komponentami programowymi. Implementacja API jest zestawem schematów, protokołów i rozwiązań informatycznych do budowy aplikacji komputerowych. Dodatkowo API może korzystać z komponentów graficznego interfejsu użytkownika. Dobre API ułatwia budowę oprogramowania, sprowadzając ją do łączenia przez programistę bloków elementów w ustalonej konwencji[10].

Definiuje się go na poziomie kodu źródłowego dla składników oprogramowania, na przykład aplikacji, bibliotek, systemu operacyjnego. Zadaniem interfejsu programowania aplikacji jest dostarczenie odpowiednich specyfikacji podprogramów, struktur danych, klas obiektów i wymaganych protokołów komunikacyjnych.

Definicja API może być niezależna od jego implementacji. Przykładowo, istnieje wiele realizacji API biblioteki standardowej języka C, które współdzielą standardową zewnętrzną funkcjonalność (są to m.in. wersja z systemu BSD oraz wersja z systemu GNU[11]).

Co więcej, istnieją API 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ę, używając zwykle języków ich opisu.

Przykładowe API to POSIX (API zdefiniowane w języku C) i Windows API (API zdefiniowane w języku C)[12], a w przypadku grafiki 3DVulkan (API zdefiniowane dla języka C, z wieloma tzw. bindingami, m.in. dla jęz. C++, jęz. Rust i innych) oraz OpenGL[13] (API zdefiniowane dla wielu języków, m.in. C, C++, Java, Python).

Jednym z typów API, które przebiły się do szerszej świadomości, są API webowe (zwane też internetowymi). Jest to rodzaj 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łanie (na przykład z sieciami społecznościowymi)[14].

Przykłady

edytuj

W języku C definicja interfejsu programowania aplikacji 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 biblioteki standardowej języka C (plik nagłówkowy <stdio.h>) to:

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, ...);

W prototypach funkcji (printf, fprintf, sprintf, snprintf) użyte są identyfikatory struktur i typów (FILE i size_t), 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:

return printf("%s", "Hello world");

Zobacz też

edytuj

Przypisy

edytuj
  1. a b Standard API dla udostępniania danych. [dostęp 2020-03-11].
  2. a b Dyrektywa Parlamentu Europejskiego i Rady (UE) 2018/1972 z dnia 11 grudnia 2018 r. ustanawiająca Europejski kodeks łączności elektronicznej (CELEX: 32018L1972).
  3. Słowniczek pojęć. PCLab. [dostęp 2020-04-19].
  4. Słownik Politechniki Wrocławskiej. itcmp.pwr.wroc. [dostęp 2020-04-19]. [zarchiwizowane z tego adresu (2020-02-17)].
  5. Słowniczek. Interfejs API. google.com. [dostęp 2020-04-19].
  6. Ekspertyzy dotyczące standardów otwartości danych publicznych. Ministerstwo Cyfryzacji. [dostęp 2020-04-19].
  7. Słownik terminów testowych ISTQB, Wersja 3.4 (2020), s. 33.
  8. Ustawa z dnia 12 lipca 2024 r. Prawo komunikacji elektronicznej (Dz. U. z 2024 r. poz. 1221).
  9. Standard API (interfejsu programistycznego aplikacji). s. 3. [dostęp 2020-03-11].
  10. OD.API standardy interfejsu programistycznego aplikacji. s. 3. [dostęp 2020-03-11].
  11. Biblioteka standardowa jęz. C w wersji GNU (ang.).
  12. Charles Petzold, Programowanie Windows. Kompletny podręcznik Win32 API do Windows 95/98/NT. Wydanie II, Wydawnictwo RM.
  13. OpenGL – The Industry’s Foundation for High Performance Graphics. opengl.org. [zarchiwizowane z tego adresu (2011-02-26)]. (ang.).
  14. Daniel Jacobson, Dan Woods, Greg Brail, Interfejs API: Strategia programisty, Helion, Gliwice, 2015.

📚 Artikel Terkait di Wikipedia

Java

ładowanie klas czy reflection API. Java wymusza konwersję typów prostych (np. int) na odpowiadający typ referencyjny (np. java.lang.Integer) przy pracy z

Java Platform, Enterprise Edition

Deployment API 1.1 J2EE Management 1.0 Enterprise JavaBeans 2.1 Java API for XML Processing 1.2 Java API for XML Registries 1.0 Java API for XML-based

Google Chrome

silnik JavaScript nazwany V8. W chwili premiery przeglądarki był najszybszym silnikiem na rynku według testu przygotowanego przez WebKit SunSpider JavaScript

Mapy Google

odbywa się z poziomu języka JavaScript, ActionScript 3 (Google Maps API for Flash®) lub w postaci obrazu (Google Static Maps API). Do korzystania z Google

Vulkan (API)

2019-11-06. [dostęp 2020-05-30]. (ang.). Another step towards Vibrant Visuals for Java Edition | Minecraft (ang.) Flax Facts #25 – Vulkan. flaxengine.com. [dostęp

Qt

bibliotek i narzędzi programistycznych przeznaczonych dla języków C++, QML i Java. Ich podstawowym składnikiem są klasy służące do budowy graficznego interfejsu

HTTP cookie

(oparty na SQLite). Indexed Database API(inne języki) – nowszy standard W3C dla zaawansowanych baz danych budowanych w JavaScript. Local shared object(inne

Apache Lucene

Software License. Biblioteka Apache Lucene jest napisana w języku Java i oferuje API z poziomu Javy (stąd pozwalała na integrację z aplikacjami Javowymi)