awesome-everything EN
↑ Обратно к восхождению

API

REST-моделирование: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту: существительные vs глаголы, не-CRUD переходы, глубина вложенности, representation vs resource, идемпотентность и прагматика HATEOAS.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов поперёк всего юнита. Каждый — это решение, которое ты принимаешь у доски или в ревью PR: не определение для заучивания, а компромисс, который надо отстоять, когда коллега возражает.

Цель

Убедись, что связываешь моделирование ресурсов, не-CRUD переходы, глубину вложенности, разделение representation/resource, идемпотентность и прагматику HATEOAS — тот синтез, к которому вёл урок.

Викторина

Коллега предлагает GET /getOpenOrders и POST /createOrder как два новых эндпоинта. Какое возражение самое точное?

Викторина

Нужно выставить 'отменить заказ' — охраняемый переход с правилами (не отгружен, не отменён ранее). Какая модель достаточно RESTful и безопасна?

Викторина

Дашборд рендерит /customers/7/projects/3/orders/42/items девятью последовательными вызовами, а путь ломается при переносе item между заказами. Какой senior-фикс?

Викторина

API сериализует строки ORM прямо в JSON. Почему добавление явного mapping-слоя (DTO/сериализатор) — решение с наибольшим рычагом в дизайне?

Викторина

Клиент ретраит POST /payments из-за таймаута ответа, и покупателя списывают дважды. Какое утверждение об идемпотентности верно?

Викторина

Пурист блокирует твой PR, потому что ответы не несут гипермедиа-ссылок (HATEOAS). Как senior должен это взвесить?

Итог

Сквозная линия: REST API моделирует существительные, нужные клиенту, с глаголом в HTTP-методе, фильтрацией и пагинацией в query-параметрах, а не-CRUD переходы — как охраняемые action- или transition-ресурсы, а не клиент-записываемое поле status. Держи вложенность мелкой и используй expansion против chatty-экранов. Сериализуй через mapping-слой, чтобы representation был контрактом, которым ты владеешь, а не твоей схемой БД. Помни, что POST не идемпотентен (используй idempotency key для безопасных ретраев), а HATEOAS — изящная теория, которая level-2 REST обычно не нужна.

Продолжить восхождение ↑REST-моделирование: тест на свободное припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.