API (Application Programming Interface) to zdefiniowany interfejs, przez który jeden program może pobierać dane lub wywoływać funkcje innego programu. W web developmencie najczęściej oznacza usługę dostępną przez HTTP i zwracającą JSON.
REST i GraphQL
- REST – zasoby pod osobnymi adresami, operacje przez metody HTTP (GET, POST, PUT, DELETE).
- GraphQL – jeden punkt wejścia, klient sam określa potrzebne pola.
Bezpieczeństwo API
Każdy punkt końcowy wymaga uwierzytelnienia, walidacji danych wejściowych i ograniczenia liczby żądań (rate limiting). Publiczne API często jest celem automatów.
Wersjonowanie i dokumentacja API
Interfejs, z którego korzystają inni, nie powinien zmieniać się niespodziewanie. Dlatego wprowadza się wersje, np. /v1/ w adresie, i utrzymuje starą wersję przez ustalony czas po wydaniu nowej. Równie ważna jest dokumentacja: opis punktów końcowych, parametrów, przykładów odpowiedzi i kodów błędów. Popularnym standardem jej zapisu jest specyfikacja OpenAPI, z której można generować strony dokumentacji i klientów w różnych językach.
Warto też ustalić limity zapytań, aby pojedynczy klient nie przeciążył usługi.
Pamiętaj o uwierzytelnianiu i ograniczaniu liczby zapytań.
Czym różni się API od biblioteki?
Biblioteka to kod dołączany do projektu. API to umowa dotycząca komunikacji, która może być zrealizowana zdalnie, przez sieć.