Wszystko, co musisz wiedzieć o API – Kompletny przewodnik

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:

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

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.

 

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/ 

 

 

 

 

 

 

Bezpłatny webinar z podstaw SNMP!

X