Питання на співбесіді з проєктування API (Junior) з відповідями
75 запитань для співбесіди з теми Проєктування API (Junior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Що таке REST API на практиці?
- 2.Який дизайн URL відповідає поширеним домовленостям REST?
- 3.Що означає «без стану» (stateless) для REST API?
- 4.Який HTTP-метод має створювати новий ресурс у колекції, наприклад нове замовлення?
- 5.Чим
PUTвідрізняється відPATCH? - 6.Які HTTP-методи є «безпечними» (safe)?
- 7.Які методи ідемпотентні за семантикою HTTP?
- 8.Що має повернути
DELETE /orders/42, якщо замовлення видалено й повертати нічого? - 9.Що містить заголовок
Locationу відповіді201 Created? - 10.Чому назви ресурсів в URL зазвичай іменники в множині, як-от
/users? - 11.Що означає
400 Bad Request? - 12.Чим відрізняються
401 Unauthorizedі403 Forbidden? - 13.Який код статусу пасує до «email уже зареєстрований» при створенні користувача?
- 14.Що каже клієнту
429 Too Many Requests? - 15.Коли API має повертати коди
5xx? - 16.Що зазвичай означає
503 Service Unavailable? - 17.Чому повертати
200 OKз{ "error": "not found" }- погана практика? - 18.Що означає
404 Not FoundдляGET /orders/999? - 19.Що повідомляє серверу заголовок запиту
Content-Type: application/json? - 20.Для чого заголовок
Accept? - 21.Як представляти дату й час у JSON API?
- 22.Чому API може повертати великі числові ID як рядки в JSON?
- 23.Який стиль назв полів має використовувати JSON API?
- 24.Куди в REST-запиті мають іти параметри фільтрації й сортування?
- 25.Що містить добре тіло відповіді з помилкою?
- 26.Що таке RFC 9457 (Problem Details)?
- 27.Чому ендпоінти списків мають бути з пагінацією?
- 28.Чим відрізняються пагінація зі зміщенням і курсорна?
- 29.Чому курсор пагінації має бути непрозорим для клієнтів?
- 30.Як API може повідомити клієнтам, що є ще сторінки?
- 31.Як зазвичай надсилають bearer-токен до API?
- 32.Чому API треба обслуговувати лише через HTTPS?
- 33.Для чого зазвичай використовують API-ключ?
- 34.Про що головно OAuth 2.0?
- 35.Що контролює CORS?
- 36.Чому API має перевіряти всі вхідні дані, навіть якщо офіційний клієнт уже це робить?
- 37.Що таке OpenAPI?
- 38.Яка перевага підходу «спершу дизайн» (design-first) для API?
- 39.Навіщо API стайлгайд?
- 40.Для чого JSON Schema в API?
- 41.Яка зміна наявної відповіді API зазвичай зворотно сумісна?
- 42.Який поширений спосіб версіонувати REST API?
- 43.Чому клієнти мають ігнорувати невідомі поля у відповідях?
- 44.Як API має оголосити, що ендпоінт буде видалено?
- 45.Які відповіді HTTP-кеші можуть зберігати найбезпечніше?
- 46.Що таке
ETag? - 47.Навіщо API може стискати відповіді?
- 48.Що таке GraphQL?
- 49.Що таке вебхук?
- 50.Для чого зазвичай використовують gRPC?
- 51.Чим відрізняються API у стилі REST і RPC?
- 52.Коли Server-Sent Events кращі за опитування?
- 53.Що повертає
HEAD /files/report.pdf? - 54.Навіщо надсилаються preflight-запити CORS
OPTIONS? - 55.Як використовувати вкладені ресурси в URL?
- 56.Який розумний максимум для параметра
limitендпоінта списку? - 57.Навіщо API заголовок з ID запиту, як-от
X-Request-Id? - 58.Яким інструментом часто вручну пробують API-запити?
- 59.Що означає «надлишкове отримання» (over-fetching)?
- 60.Що означає «недостатнє отримання» (under-fetching, «балакучий» API)?
- 61.Чи має API напряму відкривати внутрішні ID бази та структуру таблиць?
- 62.Як називати булеві прапорці в даних API?
- 63.Чому enum у відповідях API складно розширювати?
- 64.Чого ніколи не має робити запит
GET? - 65.Що означає
Retry-After: 120у відповіді? - 66.Що таке модель зрілості Річардсона?
- 67.Що таке HATEOAS?
- 68.Користувач двічі клацає «Оплатити», і клієнт надсилає
POST /paymentsдвічі. Який ризик і поширене рішення? - 69.Що означає
202 Accepted? - 70.Як клієнт може стежити за довгою операцією, запущеною з
202 Accepted? - 71.Коли нормально створювати ресурс через
PUT? - 72.Чому багато API повертають
{ "data": [...] }, а не голий JSON-масив для списків? - 73.Що дають клієнтам заголовки на кшталт
RateLimit-Remaining(чиX-RateLimit-Remaining)? - 74.Як клієнт може отримати кількох користувачів за ID одним запитом у REST API?
- 75.Яка поширена назва параметра запиту для повнотекстового пошуку в колекції?