Strona główna Programowanie Czym jest API?

Czym jest API?

przez Mateusz Michalski

API… Pewnie już gdzieś, kiedyś spotkałeś się z tym określeniem. Pojawia się bardzo często w książkach, kursach czy artykułach. Wiesz może czym jest i do czego służy? Na wstępie powiem tylko, że jest bardzo przydatne i daje bardzo dużo możliwości. Więcej zdradzę w dalszej części artykułu, zapraszam! 🙂

Wstęp i przykłady

Na świecie są miliony systemów. Bardzo często zdarzają się przypadki, kiedy aplikacje muszą ze sobą „rozmawiać”, współpracować i wymieniać się danymi. Po co? Bo nie powstała jeszcze taka, która umiałaby wszystko (i raczej nie powstanie). Musi być zatem jakaś opcja komunikacji między nimi. API (Application Programming Interface) umożliwia korzystanie z zasobów i danych z innego systemu. Jest pewnego rodzaju pośrednikiem pomiędzy, np. jedną aplikacją, a drugą. Wymiana danych może odbywać się dwukierunkowo, w różnej formie i na różnych zasadach.

Różne typy

  • Biblioteki i frameworki udostępniające funkcje, z których programista może korzystać tworząc swoją aplikację;
  • Remote API, które umożliwia zdalne zarządzanie zasobami przez dedykowane protokoły;
  • Na poziomie systemu operacyjnego, który umożliwia integrację różnych aplikacji z SO, np. Win32 API;
  • W świecie WWW pod nazwą Web API, któremu przyjrzymy się dziś trochę dokładniej.

Mimo różnych form i miejsc występowania, przeznaczenie jest podobne. API jest pośrednikiem w wymianie danych między dwoma miejscami. Można powiedzieć, że jest jak nadzienie w Oreo. 😉

Twitter API

Wyobraź sobie, że masz stronę internetową i konto na portalu Twitter. Chcesz wyświetlić na stronie swoje tweety. Ale jak?! Masz dwie opcje. Przepisywać je ręcznie – słabe rozwiązanie, po kilku razach odpuścisz i nic z tego nie wyjdzie. Druga opcja jest znacznie lepsza. Pobrać dane bezpośrednio z Twittera!

Hmm… Pytanie tylko w jaki sposób, nie masz przecież dostępu do ich bazy danych. Nie możesz napisać zapytania SQL i wyciągnąć potrzebnych informacji. Twórcy aplikacji (jak i wielu innych) przygotowali się na to i wyszli naprzeciw potrzebom użytkowników. Napisali w swojej aplikacji kod, który „nasłuchuje” jakich danych potrzebuje użytkownik, łączy się ze swoją bazą danych, przygotowuje dane w odpowiedniej formie i zwraca do użytkownika. Dzięki temu, aplikacja może udostępniać informacje w kontrolowany przez właścicieli sposób.

Aplikacja mobilna

Aplikacja sportowa na urządzenia mobilne. Posiada opcję, w której osiągnięcia sportowe można przeglądać z poziomu aplikacji WWW oraz aplikacji mobilnych IOS + Android. Żeby to było możliwe, mobilka musi łączyć się z serwerem centralnym i synchronizować dane, wykorzystując prywatne, wewnętrzne API. Po zakończonym treningu, dane są wysyłane, w celu ich przetworzenia i zapisania. Po całym tym procesie, informacje i statystyki dostępne są dla użytkownika w wielu miejscach.

Jak się łączyć z API?

W jaki sposób API „nasłuchuje” komunikacji? Różnie, zależy od technologii wykorzystanej przez twórców. Jest to kluczowa informacja, ponieważ definiuje w jaki sposób strona ma się łączyć i z jakich technologii korzystać. Najcześciej wykorzystywana do tego celu jest architektura REST, jednak może też być wykorzystywany protokół SOAP lub język zapytań – GraphQL (opiszę te technologie w następnym tygodniu). Każda pozycja z tej trójki ma inną formę żądania (request) i odpowiedzi (response).

Zastanawiasz się pewnie skąd masz wiedzieć w jaki sposób nawiązywać komunikację. Odpowiedź jest prosta, dokumentacja! Firma, która udostępnia swoje zasoby, powinna przygotować dokument, w którym opisuje obowiązujące w kontrakcie pola, statusy, komunikaty i kody HTTP. Dzięki temu programista wie w jaki sposób ma prosić o dane, a następnie jak je wykorzystać.

Prywatne vs Publiczne

Prywatne

Mają do nich dostęp tylko właściciele systemu. Integrują w ten sposób swoje wewnętrzne systemy i aplikacje. Przykładem może być architektura mikroserwisowa, w której wiele systemów łączy się ze sobą i wymienia danymi. Te miejsca powinny być bardzo dobrze zabezpieczone. Intranet, dedykowany klucz prywatny, zabezpieczenia na serwerze. Jest wiele aspektów, o których należy pamiętać aby ważne dane nie wypłynęły do Internetu.

Publiczne

Do publicznego API ma dostęp każdy. Nie posiada zabezpieczeń i jest bardzo często wykorzystywane do „domowych” projektów. Przykładem może być SWAPI, czyli API posiadające dane dotyczące świata Star Wars -> KLIK. Jest to idealna baza do ćwiczeń i integracji prostych aplikacji. Co można zrobić z takimi danymi?

  • Aplikację mobilną, która prezentuje informacje ze świata Gwiezdnych Wojen
  • Generator losowych imion i nazwisk
  • Listy z filtrowaniem i sortowaniem w JavaScript
  • Pobrać dane i ćwiczyć zapytania SQL
SWAPI

Zabezpieczone vs Otwarte

Zabezpieczone

Zabezpieczenie zazwyczaj jest realizowane w formie specjalnego tokenu, który jest generowany dla każdego użytkownika. Token wysyłany jest w specjalnym polu nagłówka HTTP. Dzięki temu właściciel API wie jaki użytkownik łączy się z jego serwisem, sprawdza czy może to robić oraz czy ma odpowiednie uprawnienia. Jest to kluczowe, np. w przypadku licencjonowania dostępu i pobierania opłat. Jakie technologie wykorzystuje się do zabezpieczeń? Na przykład JWT, OAuth 2.0, Basic Authentication.

Otwarte

Zasada jest dosyć prosta. Nie występują tutaj zabezpieczenia, które w jakikolwiek sposób weryfikowałyby tożsamość i uprawnienia użytkownika (np. poprzez token w nagłówku HTTP). Dzięki temu każdy może skorzystać z danych i wystawionego API, bez limitu i ograniczeń.

Czy za API się płaci?

Czasem tak, czasem nie. To zależy od firmy i jej celu biznesowego. W przypadku wspomnianego już Twittera, firma nie musi zarabiać na udostępnianiu danych, dlatego w standardowej wersji dzielą się nimi za darmo. To jest przecież dla nich świetna forma reklamy!

Są jednak firmy, których celem biznesowym jest zbieranie i przetrzymywanie wartościowych danych, na których później dobrze zarabiają. Rozliczenie może przybierać różne formy. Często spotykałem się z płatnościami per wykonywane liczby requestów. Na przykład limit 10 000 żądań na miesiąc, który obejmuje darmowy dostęp do API. Przekroczenie tej liczby skutkuje zablokowaniem dostępu do danych lub koniecznością opłacenia pakietu.

Spójrz na API pogodowe i ich plany opłat -> KLIK. API takie może być idealne kiedy potrzebujesz wyświetlić informacje o aktualnej pogodzie, np. w aplikacji do biegania. Planów opłat jest kilka w zależności od liczby wykonywanych requestów w skali miesiąca i minuty. Jeżeli posiadasz aplikację z dużą bazą użytkowników, którzy często ćwiczą, darmowa wersja na długo nie wystarczy i trzeba będzie sięgnąć do kieszeni lub szukać darmowej / tańszej alternatywy. Warto na początku analizować skalę i szacować wykorzystanie danych.

API pogodowe

Jak widzisz na przykładzie tej firmy, na zbieraniu i udostępnianiu danych można całkiem nieźle zarabiać!

Podsumowanie

Na koniec warto podsumować to co najważniejsze:

  • API jest mostem, który łączy różne aplikacje i umożliwia wymianę danych
  • Realizowane jest na różnych zasadach i z wykorzystaniem różnych technologii
  • Komunikacja może działać dwukierunkowo – pobierać i wysyłać dane
  • Są wersje darmowe oraz płatne

Daj lajka i czytaj dalej 😉

Jeżeli chcesz być na bieżąco z artykułami i jesteś ciekawy co będzie dalej, daj lajka na naszym profilu FB, a przede wszystkim zapisz się do newslettera! Spodobał Ci się artykuł? Może zaciekawią Cię inne wpisy na naszym blogu.

Dzięki za Twój czas, widzimy się niebawem! 🙂

4.6 17 votes
Oceny

Powiązane wpisy

guest
6 komentarzy
Inline Feedbacks
View all comments

Strona wykorzystuje cookies i przetwarza dane zgodnie z zasadami opublikowanymi w Polityce Prywatności. Jeżeli nie wyrażasz zgody na przetwarzanie danych, zmień ustawienia swojej przeglądarki. Wybierając "OK", zgadzasz się na warunki przetwarzania. OK Więcej