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.
- REST
- HTTP
- OpenAPI
- GraphQL
- Webhooks
Pytania według poziomu
Junior
Podstawowe pojęcia i składnia · 50 pytań
Middle
Praktyka, niuanse i optymalizacja · 50 pytań
Senior
Architektura, mechanizmy wewnętrzne, przypadki brzegowe · 50 pytań
Przykładowe pytania
Kilka pytań z każdego poziomu z poprawną odpowiedzią i wyjaśnieniem.
Projektowanie API · Junior
- 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ść.
- Który projekt URL-a jest zgodny z typowymi konwencjami REST?
Poprawna odpowiedź:
GET /users/42/ordersURL-e nazywają zasoby (rzeczowniki, zwykle w liczbie mnogiej); metoda HTTP mówi, co zrobić. Czasowniki w ścieżkach to styl RPC.
- 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.
- Która metoda HTTP powinna tworzyć nowy zasób w kolekcji, np. nowe zamówienie?
Poprawna odpowiedź:
POST /ordersID nadaje serwer i zwykle odpowiada
201 Createdz nagłówkiemLocationwskazującym nowy zasób.
Projektowanie API · Middle
- Jak zamodelować „anuluj zamówienie” w REST API?
Poprawna odpowiedź: Jako zmianę stanu (
PATCH /orders/42z{status: "cancelled"}) albo własną akcję (POST /orders/42:cancellub/orders/42/cancellation), udokumentowaną spójnieAnulowanie 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.
- 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.
- 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.
- 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=customerRozwijanie zapobiega gadatliwym klientom, a domyślne odpowiedzi pozostają małe. Ogranicz głębokość i liczbę dołączanych relacji.
Projektowanie API · Senior
- 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.
- 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.
- 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.
- 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.
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 →