← Wszystkie tematy

Pytania rekrutacyjne z projektowania API z odpowiedziami

Zasoby REST i semantyka HTTP, kody statusu, błędy, paginacja i filtrowanie, wersjonowanie, idempotencja, cache, uwierzytelnianie, OpenAPI, GraphQL, gRPC, webhooki i API czasu rzeczywistego.

225 pytań na rozmowę rekrutacyjną z tematu Projektowanie API z odpowiedziami i wyjaśnieniami - poziomy Junior, Middle i Senior. Przykładowe pytania, testy online i zadania z kodu.

Pytania według poziomu

Przykładowe pytania

Kilka pytań z każdego poziomu z poprawną odpowiedzią i wyjaśnieniem.

Projektowanie API · Junior

  1. Czym w praktyce jest REST API?

    Poprawna odpowiedź: API HTTP zorganizowanym wokół zasobów identyfikowanych URL-ami, obsługiwanych standardowymi metodami GET, POST, PUT, PATCH i DELETE

    REST to styl architektoniczny opisany przez Roya Fieldinga. Większość „REST API” stosuje jego główne idee: zasoby, jednolity interfejs, bezstanowość i cache'owalność.

  2. Który projekt URL-a jest zgodny z typowymi konwencjami REST?

    Poprawna odpowiedź: GET /users/42/orders

    URL-e nazywają zasoby (rzeczowniki, zwykle w liczbie mnogiej); metoda HTTP mówi, co zrobić. Czasowniki w ścieżkach to styl RPC.

  3. Co oznacza „bezstanowość” (stateless) dla REST API?

    Poprawna odpowiedź: Każde żądanie niesie wszystko, czego potrzebuje serwer (np. token uwierzytelniający); serwer nie polega na stanie sesji z poprzednich żądań

    Bezstanowość ułatwia skalowanie poziome: każda instancja może obsłużyć każde żądanie.

  4. Która metoda HTTP powinna tworzyć nowy zasób w kolekcji, np. nowe zamówienie?

    Poprawna odpowiedź: POST /orders

    ID nadaje serwer i zwykle odpowiada 201 Created z nagłówkiem Location wskazującym nowy zasób.

Wszystkie 75 pytań z odpowiedziami →

Projektowanie API · Middle

  1. Jak zamodelować „anuluj zamówienie” w REST API?

    Poprawna odpowiedź: Jako zmianę stanu (PATCH /orders/42 z {status: "cancelled"}) albo własną akcję (POST /orders/42:cancel lub /orders/42/cancellation), udokumentowaną spójnie

    Anulowanie zwykle zachowuje zamówienie w historii i może mieć reguły biznesowe. Osobna akcja czyni te reguły jawnymi; GET nigdy nie może zmieniać stanu.

  2. Kiedy relacja powinna być osobnym zasobem, np. /users/42/memberships?

    Poprawna odpowiedź: Gdy ma własne dane lub cykl życia (rola, data dołączenia, zatwierdzenie), a nie jest tylko połączeniem dwóch elementów

    Członkostwo jako zasób daje naturalne operacje tworzenia, aktualizacji i usuwania.

  3. Jak wygląda JSON Patch (RFC 6902)?

    Poprawna odpowiedź: Lista operacji, np. { "op": "replace", "path": "/email", "value": "a@b.c" }

    Operacje to add, remove, replace, move, copy i test. Jest precyzyjny dla tablic, ale bardziej złożony dla klientów.

  4. Jak REST API może pozwolić klientom wczytać powiązane zasoby w jednym żądaniu?

    Poprawna odpowiedź: Parametrem rozwijania, np. ?include=author,comments (JSON:API) albo ?expand=customer

    Rozwijanie zapobiega gadatliwym klientom, a domyślne odpowiedzi pozostają małe. Ogranicz głębokość i liczbę dołączanych relacji.

Wszystkie 75 pytań z odpowiedziami →

Projektowanie API · Senior

  1. Jak wybierać między REST, GraphQL i gRPC dla nowego systemu?

    Poprawna odpowiedź: Według konsumentów i ograniczeń: REST dla publicznych, cache'owalnych API zasobów; GraphQL dla zróżnicowanych potrzeb UI w danych; gRPC dla wewnętrznych, szybkich wywołań między serwisami z typowanymi kontraktami

    Wiele systemów je łączy: gRPC między serwisami, BFF w GraphQL lub REST dla klientów i REST dla publicznych partnerów.

  2. Czym jest podejście „API jako produkt”?

    Poprawna odpowiedź: Traktowanie konsumentów API jak klientów: stabilne kontrakty, dobra dokumentacja, onboarding, polityka wersjonowania, wsparcie i metryki użycia

    Korzystają na tym też API wewnętrzne: inne zespoły to klienci, których produktywność zależy od twojego projektu.

  3. Po co wprowadzać governance API (style guide, przeglądy, linting) w organizacji z wieloma zespołami?

    Poprawna odpowiedź: Żeby API sprawiały wrażenie jednej platformy: spójne nazwy, błędy, paginacja i uwierzytelnianie, co obniża koszt integracji dla każdego konsumenta

    Automatyzuj, co się da (reguły Spectral, wykrywanie zmian niekompatybilnych), a przegląd ludzki zostaw dla decyzji modelowych.

  4. Jak prawo Hyruma i zasada „bądź konserwatywny w tym, co wysyłasz” współgrają przy ewolucji API?

    Poprawna odpowiedź: Od każdego obserwowalnego zachowania ktoś będzie zależał, więc udostępniaj jak najmniej, jawnie dokumentuj gwarancje i unikaj przypadkowych kontraktów jak kolejność pól

    Nawet tekst komunikatu błędu, domyślna kolejność sortowania czy czas odpowiedzi mogą stać się czymś, na czym polegają klienci.

Wszystkie 75 pytań z odpowiedziami →

Testy łączone z tym tematem

Pytania z kilku tematów naraz - jak na rozmowie rekrutacyjnej na konkretne stanowisko.

Zadania z kodu

Napisz rozwiązanie prosto w przeglądarce, a testy od razu je sprawdzą. Klasyka rozmów rekrutacyjnych z JavaScriptu (debounce, deepClone, Promise.all, cache LRU) i z Reacta: komponenty i hooki, takie jak lista zadań, zakładki, useDebounce i useInterval.

Otwórz zadania →