encyklopedia.space

API – interfejs programistyczny aplikacji

API (ang. Application Programming Interface) to zbiór reguł, protokołów i narzędzi umożliwiających komunikację pomiędzy różnymi komponentami oprogramowania. Dzięki API programiści mogą wykorzystywać funkcjonalności istniejących systemów, bibliotek czy usług bez konieczności znajomości ich wewnętrznej implementacji.

Historia i rozwój

Początki API sięgają lat 1970, kiedy to w ramach systemów operacyjnych zaczęto udostępniać wywołania systemowe (ang. system calls). W latach 90. XX w. popularność zdobyły interfejsy biblioteczne języków C i C++. Rozwój internetu przyczynił się do powstania webowych API opartych na protokołach HTTP oraz formatach JSON i XML. W 2000 roku pojawiły się pierwsze standardy SOAP i REST, które zdominowały architekturę usług sieciowych.

Podstawowe pojęcia

  • Endpoint – adres (URL) lub punkt dostępowy, pod którym udostępniana jest funkcjonalność API.
  • Metody HTTP – najczęściej używane: GET, POST, PUT, DELETE (w kontekście REST).
  • Format wymiany danych – najpopularniejsze: JSON, XML, YAML.
  • Klucz API – unikalny identyfikator przydzielany użytkownikom w celu autoryzacji i monitorowania zużycia usług.
  • SDK (Software Development Kit) – zestaw narzędzi i bibliotek ułatwiających korzystanie z określonego API.

Rodzaje API

API systemowe

Udostępniają funkcje systemu operacyjnego (Windows, Linux, macOS) i pozwalają programom na operacje na plikach, procesach, pamięci itp.

API biblioteczne

Stanowią interfejs do określonych bibliotek (np. OpenGL, Boost), umożliwiając wykorzystanie ich funkcji w aplikacjach.

Web API

Umożliwiają komunikację pomiędzy aplikacjami przez sieć. Najważniejsze style to:

  • REST – architektura wykorzystująca zasoby i standardowe metody HTTP.
  • SOAP – protokół oparty na XML, często używany w środowiskach korporacyjnych.
  • GraphQL – język zapytań opracowany przez Facebook, pozwalający na precyzyjne określanie wymaganych danych.

API wewnętrzne (ang. internal API)

Stosowane w ramach jednego projektu lub organizacji w celu modularyzacji kodu i ułatwienia współpracy zespołów programistycznej.

Zastosowania

API znajdują zastosowanie w praktycznie każdym obszarze IT:

  • Integracja systemów – łączenie aplikacji ERP, CRM, baz danych.
  • Rozwój aplikacji mobilnych – dostęp do usług chmurowych (np. Google Maps).
  • Usługi internetowe – platformy streamingowe, płatności online, media społecznościowe.
  • Automatyzacja – skrypty i boty wykorzystujące publiczne API (np. Twitter API).

Bezpieczeństwo

Udostępnianie API wiąże się z ryzykiem nadużyć. Najczęściej stosowane mechanizmy ochronne:

  • Autoryzacja – tokeny OAuth 2.0, klucze API, certyfikaty.
  • Limitowanie (ang. rate limiting) – ograniczenia liczby zapytań w określonym czasie.
  • Walidacja danych – schematy JSON Schema, walidatory XML.
  • Monitorowanie i logowanie – analiza ruchu, wykrywanie anomalii.

Wersjonowanie

Aby zapewnić kompatybilność w czasie, API są wersjonowane. Popularne podejścia:

  • W wersji w ścieżce URL (np. /v1/, /v2/).
  • W nagłówkach HTTP (np. Accept-Version).
  • Za pomocą parametrów zapytania.

Przykładowy opis endpointu REST

GET /api/v1/users/{id}
Host: example.com
Authorization: Bearer <token>

Response (200 OK):
{
    "id": 123,
    "name": "Jan Kowalski",
    "email": "jan.kowalski@example.com"
}
    

Najważniejsze pojęcia powiązane

Warto zapoznać się także z innymi artykułami encyklopedycznymi:

Przyszłość API

Rozwój mikrousług, architektur serverless i sztucznej inteligencji prowadzi do powstawania coraz bardziej złożonych i autonomicznych interfejsów. GraphQL oraz gRPC zyskują na popularności w środowiskach wymagających wysokiej wydajności i precyzyjnego pobierania danych.

API pozostają kluczowym elementem współczesnego ekosystemu cyfrowego, umożliwiając współdziałanie systemów, skalowalność usług oraz szybką innowację.