Pytania rekrutacyjne z projektowania API (Junior) z odpowiedziami

75 pytań na rozmowę rekrutacyjną z tematu Projektowanie API (Junior) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.

Rozwiąż ten test
  1. 1.Czym w praktyce jest REST API?
  2. 2.Który projekt URL-a jest zgodny z typowymi konwencjami REST?
  3. 3.Co oznacza „bezstanowość” (stateless) dla REST API?
  4. 4.Która metoda HTTP powinna tworzyć nowy zasób w kolekcji, np. nowe zamówienie?
  5. 5.Czym różni się PUT od PATCH?
  6. 6.Które metody HTTP są „bezpieczne” (safe)?
  7. 7.Które metody są idempotentne według semantyki HTTP?
  8. 8.Co powinno zwrócić DELETE /orders/42, gdy zamówienie usunięto i nie ma nic do odesłania?
  9. 9.Co zawiera nagłówek Location w odpowiedzi 201 Created?
  10. 10.Dlaczego nazwy zasobów w URL-ach to zwykle rzeczowniki w liczbie mnogiej, np. /users?
  11. 11.Co oznacza 400 Bad Request?
  12. 12.Czym różnią się 401 Unauthorized i 403 Forbidden?
  13. 13.Który kod statusu pasuje do „e-mail jest już zarejestrowany” przy tworzeniu użytkownika?
  14. 14.Co mówi klientowi 429 Too Many Requests?
  15. 15.Kiedy API powinno zwracać kody 5xx?
  16. 16.Co zwykle oznacza 503 Service Unavailable?
  17. 17.Dlaczego zwracanie 200 OK z { "error": "not found" } to zła praktyka?
  18. 18.Co oznacza 404 Not Found dla GET /orders/999?
  19. 19.Co nagłówek żądania Content-Type: application/json mówi serwerowi?
  20. 20.Do czego służy nagłówek Accept?
  21. 21.Jak reprezentować daty i godziny w JSON API?
  22. 22.Dlaczego API może zwracać duże liczbowe ID jako stringi w JSON?
  23. 23.Jakiego stylu nazw pól powinno używać JSON API?
  24. 24.Gdzie w żądaniu REST powinny trafiać opcje filtrowania i sortowania?
  25. 25.Co zawiera dobre body odpowiedzi z błędem?
  26. 26.Czym jest RFC 9457 (Problem Details)?
  27. 27.Dlaczego endpointy list powinny być stronicowane?
  28. 28.Czym różni się paginacja offsetowa od kursorowej?
  29. 29.Dlaczego kursor paginacji powinien być nieprzezroczysty dla klientów?
  30. 30.Jak API może poinformować klientów, że są kolejne strony?
  31. 31.Jak zwykle wysyła się bearer token do API?
  32. 32.Dlaczego API trzeba udostępniać tylko przez HTTPS?
  33. 33.Do czego zwykle służy klucz API?
  34. 34.O co głównie chodzi w OAuth 2.0?
  35. 35.Co kontroluje CORS?
  36. 36.Dlaczego API powinno walidować wszystkie dane wejściowe, nawet jeśli oficjalny klient już to robi?
  37. 37.Czym jest OpenAPI?
  38. 38.Jaka jest zaleta podejścia „najpierw projekt” (design-first) do API?
  39. 39.Po co API style guide?
  40. 40.Do czego w API służy JSON Schema?
  41. 41.Która zmiana istniejącej odpowiedzi API jest zwykle wstecznie kompatybilna?
  42. 42.Jaki jest popularny sposób wersjonowania REST API?
  43. 43.Dlaczego klienci powinni ignorować nieznane pola w odpowiedziach?
  44. 44.Jak API powinno ogłosić, że endpoint zostanie usunięty?
  45. 45.Które odpowiedzi cache HTTP mogą przechowywać najbezpieczniej?
  46. 46.Czym jest ETag?
  47. 47.Dlaczego API może kompresować odpowiedzi?
  48. 48.Czym jest GraphQL?
  49. 49.Czym jest webhook?
  50. 50.Do czego zwykle używa się gRPC?
  51. 51.Czym różnią się API w stylu REST i RPC?
  52. 52.Kiedy Server-Sent Events są lepsze niż odpytywanie?
  53. 53.Co zwraca HEAD /files/report.pdf?
  54. 54.Dlaczego wysyłane są żądania preflight CORS OPTIONS?
  55. 55.Jak używać zagnieżdżonych zasobów w URL-ach?
  56. 56.Jakie jest rozsądne maksimum parametru limit w endpoincie listy?
  57. 57.Po co API nagłówek z ID żądania, np. X-Request-Id?
  58. 58.Jakim narzędziem często ręcznie próbuje się żądań API?
  59. 59.Co oznacza „nadmiarowe pobieranie” (over-fetching)?
  60. 60.Co oznacza „niedostateczne pobieranie” (under-fetching, „gadatliwe” API)?
  61. 61.Czy API powinno bezpośrednio ujawniać wewnętrzne ID bazy i strukturę tabel?
  62. 62.Jak nazywać flagi logiczne w danych API?
  63. 63.Dlaczego enumy w odpowiedziach API trudno rozszerzać?
  64. 64.Czego żądanie GET nigdy nie powinno robić?
  65. 65.Co oznacza Retry-After: 120 w odpowiedzi?
  66. 66.Czym jest model dojrzałości Richardsona?
  67. 67.Czym jest HATEOAS?
  68. 68.Użytkownik klika dwa razy „Zapłać” i klient wysyła POST /payments dwa razy. Jakie jest ryzyko i typowe rozwiązanie?
  69. 69.Co oznacza 202 Accepted?
  70. 70.Jak klient może śledzić długą operację rozpoczętą z 202 Accepted?
  71. 71.Kiedy można tworzyć zasób przez PUT?
  72. 72.Dlaczego wiele API zwraca { "data": [...] } zamiast gołej tablicy JSON dla list?
  73. 73.Co dają klientom nagłówki typu RateLimit-Remaining (lub X-RateLimit-Remaining)?
  74. 74.Jak klient może pobrać kilku użytkowników po ID w jednym żądaniu w REST API?
  75. 75.Jaka jest popularna nazwa parametru zapytania do wyszukiwania pełnotekstowego w kolekcji?