Sobes.tech
Junior

Czym jest API REST?

sobes.tech AI

Odpowiedź od AI

Interfejs API REST to styl architektoniczny służący do budowania rozproszonych systemów. Główne zasady REST:

  • Bezstanowość: Każde żądanie od klienta do serwera musi zawierać wszystkie niezbędne informacje do przetworzenia. Serwer nie przechowuje stanu klienta między żądaniami.
  • Klient-Serwer: Wyraźny podział obowiązków między klientem a serwerem. Klient wysyła żądania, serwer je obsługuje.
  • Cache'owalność: Serwer musi wskazać, czy odpowiedzi mogą być przechowywane w pamięci podręcznej przez klienta lub pośredników.
  • System warstwowy: Klient nie musi bezpośrednio komunikować się z końcowym serwerem; może to robić przez pośrednie warstwy (proxy, load balancery).
  • Ujednolicony interfejs: Jeden i standaryzowany sposób komunikacji między klientem a serwerem. Zasada ta obejmuje:
    • Identyfikację zasobów: Zasoby (dane) są identyfikowane przez URL.
    • Manipulację zasobami przez reprezentacje: Klient wchodzi w interakcję z zasobami, otrzymując ich reprezentacje (np. JSON, XML) i wysyłając nowe reprezentacje do modyfikacji.
    • Samodzielne wiadomości: Każda wiadomość zawiera wystarczające informacje, aby ją zrozumieć.
    • HATEOAS (Hypertext As The Engine Of Application State): Zasoby powinny zawierać odnośniki (hiperłącza) do powiązanych zasobów i dostępnych działań.

REST API zazwyczaj używa standardowych metod HTTP do wykonywania operacji na zasobach:

  • GET: Pobranie zasobu lub kolekcji zasobów.
  • POST: Utworzenie nowego zasobu.
  • PUT: Pełna aktualizacja istniejącego zasobu.
  • PATCH: Częściowa aktualizacja istniejącego zasobu.
  • DELETE: Usunięcie zasobu.

Przykład reprezentacji JSON zasobu:

{
  "id": 1, // Identyfikator
  "name": "Resource Name", // Nazwa zasobu
  "description": "Detailed description of the resource." // Opis zasobu
}

Testowanie REST API obejmuje sprawdzanie:

  • Funkcjonalności (poprawności odpowiedzi na żądania).
  • Obsługi błędów.
  • Wydajności.
  • Bezpieczeństwa.
  • Zgodności z dokumentacją.