Вопрос на собеседовании · Fullstack-разработчик
Как спроектировать API для пользовательского сценария?
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
API начинают проектировать с пользовательского сценария и границы ресурса, а не с таблиц базы данных. Контракт описывает метод, путь, входные и выходные данные, обязательность, валидацию, ошибки, права и пагинацию; одинаковые операции должны иметь предсказуемую семантику.
Для операций с ретраями важна идемпотентность: повтор не должен создавать второй платёж или заказ. Контракт эволюционирует добавлением совместимых полей, явной депрекацией и наблюдением за потребителями; скрытое изменение смысла поля опаснее отсутствия версии в URL.
01 · Структура ответа
Что важно сказать интервьюеру
Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:
02 · Пример
Как объяснить на практике
POST /orders принимает Idempotency-Key и возвращает тот же результат при повторе. Сервер проверяет права на корзину, валидирует остатки в транзакции и отдаёт структурированную ошибку, которую frontend показывает рядом с причиной, а не как общий «сбой».
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- Когда нужна версия API?
- Как выбрать cursor pagination?
- Где валидировать вход?
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с подсказкой.
Mira