API (Application Programming Interface) to interfejs programistyczny aplikacji, który umożliwia komunikację między różnymi systemami i aplikacjami. Działa ono jako pośrednik, który pozwala programom na wymianę danych i funkcjonalności w ustandaryzowany sposób, bez konieczności ingerowania w wewnętrzne struktury systemów.
API znajduje zastosowanie w wielu obszarach. W aplikacjach internetowych umożliwia integrację z bazami danych, logowanie użytkowników czy połączenie z mediami społecznościowymi. W aplikacjach mobilnych jest wykorzystywane do pobierania danych pogodowych, map, systemów płatności oraz innych usług zewnętrznych. W sektorze Internetu Rzeczy (IoT) API pozwala inteligentnym urządzeniom domowym komunikować się z chmurą. Jest również kluczowe w integracjach między systemami biznesowymi, jak ERP czy CRM, pozwalając na płynne przesyłanie informacji pomiędzy różnymi aplikacjami.

Pierwszy webinar z SNMP już 26 marca!
Chcesz zrozumieć, jak skutecznie monitorować sieć i szybko reagować na problemy? Dołącz do naszych darmowych warsztatów online i odkryj SNMP – potężny protokół, który umożliwia efektywne zarządzanie infrastrukturą IT! zapisz się na bezpłatny webinar z SNMP!
Widzimy się 26 marca o 13:00!
Dołącz na: https://asdevops.pl/warsztaty/
Jak działa API?
API umożliwia aplikacjom wymianę danych poprzez wysyłanie zapytań i odbieranie odpowiedzi. Podstawą jego działania jest model żądanie-odpowiedź, gdzie klient (np. przeglądarka internetowa lub aplikacja) wysyła zapytanie do serwera API, a ten przetwarza je i zwraca odpowiedź w określonym formacie.
Proces komunikacji API można podzielić na kilka kluczowych kroków. Po pierwsze, klient wysyła żądanie, np. metodą GET, POST lub inną. Następnie API przetwarza zapytanie i komunikuje się z bazą danych lub innymi systemami w celu uzyskania odpowiednich informacji. Kolejno API zwraca odpowiedź, zazwyczaj w formacie JSON lub XML, którą klient może przetworzyć i wykorzystać w swojej aplikacji.
Metody HTTP stosowane w API
API RESTful korzystają z metod HTTP do wykonywania różnych operacji na zasobach. Każda z metod ma określoną funkcję:
- GET – pobieranie danych z serwera. Stosowane do odczytu zasobów bez ich modyfikacji.
- POST – wysyłanie nowych danych do serwera. Używane np. do tworzenia nowych użytkowników czy przesyłania formularzy.
- PUT – aktualizacja istniejących danych. Wykorzystywane do modyfikacji całych rekordów w bazie danych.
- DELETE – usuwanie danych z serwera. Stosowane, gdy chcemy usunąć konkretny zasób.
- PATCH – częściowa aktualizacja danych. Przydatne w sytuacji, gdy chcemy zmodyfikować tylko wybrane pola w zasobie.
Nagłówki HTTP
Nagłówki HTTP dostarczają dodatkowych informacji dotyczących żądania lub odpowiedzi API. Pełnią one istotną rolę w autoryzacji, formatowaniu danych oraz zarządzaniu sesjami.
Najczęściej stosowane nagłówki to:
- Authorization – używany do uwierzytelniania żądań, np. poprzez tokeny dostępu.
- Content-Type – określa format przesyłanych danych, np.
application/json
dla formatu JSON. - Accept – informuje serwer, w jakim formacie klient oczekuje odpowiedzi.
- User-Agent – identyfikuje klienta wysyłającego żądanie, np. przeglądarkę lub aplikację mobilną.
Kody odpowiedzi HTTP
Serwer API zwraca kody statusu HTTP, które informują o wyniku operacji. Dzięki nim możemy zrozumieć, czy żądanie zostało pomyślnie obsłużone, czy napotkano jakiś błąd.
Najważniejsze kody odpowiedzi to:
- 200 OK – żądanie zakończone sukcesem.
- 201 Created – zasób został pomyślnie utworzony.
- 400 Bad Request – błędne zapytanie klienta, np. niepoprawne parametry.
- 401 Unauthorized – brak autoryzacji, np. niewłaściwy token dostępu.
- 403 Forbidden – brak uprawnień do zasobu.
- 404 Not Found – zasób nie został znaleziony.
- 500 Internal Server Error – błąd wewnętrzny serwera.
Stosowane formaty danych
API wykorzystują różne formaty do przesyłania danych. Najczęściej spotykane to:
- JSON (JavaScript Object Notation) – najpopularniejszy format, czytelny dla ludzi i łatwy do przetwarzania przez maszyny.
- XML (eXtensible Markup Language) – dawniej popularny format, używany w starszych systemach.
- YAML – często stosowany w plikach konfiguracyjnych API.
- Form Data – używany do przesyłania plików i formularzy.
Przykłady darmowych API
Jeśli chcesz rozpocząć pracę z API, warto skorzystać z dostępnych darmowych usług. Oto kilka przykładów:
- OpenWeatherMap – API do pobierania prognozy pogody.
- JSONPlaceholder – testowe API do nauki i testowania zapytań.
- TheCatAPI – API zwracające losowe zdjęcia kotów.
- PokéAPI – baza danych o Pokémonach dla fanów gier i animacji.
- REST Countries – API dostarczające informacje o krajach świata.
Narzędzia do testowania API
Aby ułatwić pracę z API, warto korzystać z narzędzi do testowania i debugowania zapytań. Oto najpopularniejsze z nich:
- Postman – jedno z najpopularniejszych narzędzi do testowania API, pozwala na wysyłanie i analizowanie zapytań.
- cURL – narzędzie wiersza poleceń do wykonywania zapytań HTTP.
- Swagger – umożliwia dokumentację i testowanie API.
- Insomnia – alternatywa dla Postmana, oferująca przejrzysty interfejs i łatwość użytkowania.
- Hoppscotch – lekkie narzędzie do testowania API online, dostępne przez przeglądarkę.
Tworzenie własnego API z FastAPI
FastAPI to nowoczesny framework do tworzenia API w języku Python, który zapewnia wysoką wydajność i prostą implementację. Poniżej przykład prostego API
1. Instalacja FastAPI i serwera ASGI
Najpierw należy zainstalować FastAPI oraz serwer ASGI uvicorn
, który posłuży do uruchomienia aplikacji. Uruchom kod w terminalu lub w IDE (Visual Studio Code lub Pycharm)
pip install fastapi uvicorn
2. Tworzenie pliku main.py
. Stworzymy prostą aplikację API do zarządzania książkami w bibliotece.
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import List
app = FastAPI()
# Model danych
class Book(BaseModel):
id: int
title: str
author: str
year: int
# Baza danych w pamięci
books = [
Book(id=1, title="Władca Pierścieni", author="J.R.R. Tolkien", year=1954),
Book(id=2, title="Hobbit", author="J.R.R. Tolkien", year=1937),
Book(id=3, title="1984", author="George Orwell", year=1949)
]
# Endpoint do pobrania listy książek
@app.get("/books", response_model=List[Book])
def get_books():
return books
# Endpoint do dodania nowej książki
@app.post("/books", response_model=Book)
def add_book(book: Book):
for existing_book in books:
if existing_book.id == book.id:
raise HTTPException(status_code=400, detail="Książka o takim ID już istnieje")
books.append(book)
return book
# Endpoint do pobrania książki po ID
@app.get("/books/{book_id}", response_model=Book)
def get_book(book_id: int):
for book in books:
if book.id == book_id:
return book
raise HTTPException(status_code=404, detail="Książka nie znaleziona")
Aby uruchomić API, wystarczy użyć komendy w termianlu:
uvicorn main:app --reload
Opcja –reload pozwala na automatyczne przeładowywanie aplikacji po każdej zmianie kodu.
Dokumentacja API w Swagger UI
Po uruchomieniu aplikacji można otworzyć przeglądarkę i wejść na adres:
http://127.0.0.1:8000/docs
Tam dostępna jest automatycznie wygenerowana dokumentacja Swagger UI, gdzie w prosty sposób można testować API.
Polecane materiały
- Oficjalna dokumentacja FastAPI
- FastAPI Tutorial od FreeCodeCamp
- Wprowadzenie do FastAPI – realpython.com
Podsumowanie
API to niezwykle ważna część współczesnego oprogramowania, umożliwiająca integrację systemów i aplikacji. Dzięki znajomości metod HTTP, kodów odpowiedzi, formatów danych i narzędzi do testowania, możesz skutecznie korzystać z API w swoich projektach. Jeśli chcesz zacząć pracę z API, warto eksperymentować z darmowymi usługami i narzędziami, które ułatwią naukę i rozwój aplikacji.