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

API

APIs: review с выбором ответа

Суть Multiple-choice синтез по всему треку APIs — моделирование ресурсов, status-код как retry-контракт, cursor-пагинация, OpenAPI break-diff, gRPC-vs-REST и rate-limit-заголовки как один связанный дизайн.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов, которые проходят сквозь весь трек. Каждый отражает решение на review реального публичного API — не определение для зубрёжки, а место, где одно слабое звено держит на себе следующее.

Цель

Убедись, что можешь проследить каскад от начала до конца: как моделирование ресурсов готовит честные status-коды, как status-коды управляют retry клиента, как пагинация и OpenAPI-контракт держат оба корректными под нагрузкой и где здесь протокол и rate limit.

Викторина

Команда смоделировала POST /chargeCard вместо ресурса payments. Через месяцы — двойные списания. Какое звено в каскаде корневое?

Викторина

Что лучше всего объясняет, почему HTTP status-код — это контракт, а не украшение?

Викторина

Эндпоинт отдаёт список на 2M строк, просматриваемый вживую, через OFFSET/LIMIT, и глубокие страницы тормозят и иногда пропускают строки. Лучший структурный фикс?

Викторина

Деплой переименовал поле конверта ошибки с `message` на `detail` и ужесточил enum статуса. CI был зелёный, а клиенты сломались в проде. Чего не хватало и какие изменения были проблемой?

Викторина

Коллега хочет сделать публичный API на gRPC, потому что бенчмарки показывают ~77% ниже latency, ~10x меньше сообщения и выше throughput. Как рассуждать сеньору?

Викторина

Retry-шторм на пике превращается в outage: десятки тысяч дублирующих записей в секунду бьют в БД. Какой контроль сдержал бы это и как он должен вести себя?

Итог

Трек — это одна цепь, а не чеклист. Моделирование ресурсов (существительные, не-CRUD-действия как суб-ресурсы) решает, могут ли status-коды быть честными; status-коды — машиночитаемый retry-контракт (201/409/429, Idempotency-Key на небезопасных записях, Retry-After на дросселях); cursor-пагинация держит большие/живые чтения плоскими и стабильными; spec-first OpenAPI с break-diff в CI останавливает тихий дрейф; версионирование развивается аддитивно и поднимает версию только на реальных break с политикой Sunset; протокол — ортогональная ось (REST на edge, gRPC внутри); rate limit с 429 + Retry-After не даёт retry-шторму стать outage. Ревьюй каскад, потому что каждое звено держит следующее.

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

Trademarks belong to their respective owners. Editorial reference only.