Hacker News Digest

24 августа 2025 г. в 19:10 • seangoedecke.com • ⭐ 304 • 💬 109

OriginalHN

#api#http#rest#idempotency#pagination#versioning#stripe#openai

Everything I know about good API design

Краткое руководство по хорошему API-дизайну

Хороший API — это скучный API. Пользователю должно быть интуитивно понятно, как им пользоваться, без чтения документации. Однако, в отличие от большинства систем, API почти нельзя менять: любое изменение ломает чужой код и толкает клиентов к конкурентам.

Не ломаем userspace

  • Добавлять поля можно.
  • Удалять, менять тип или структуру полей — нельзя.
  • Даже опечатка в HTTP-заголовке referer навсегда останется опечаткой, потому что «мы не ломаем userspace».

Как изменять API без боли

Если изменение критично, используйте версионирование:

  • Параллельно запускаем старую (/v1/) и новую (/v2/) версии.
  • Сообщаем клиентам, ждём месяцы или годы, затем выключаем старую.
  • Stripe и OpenAI делают именно так, но это всё равно «зло из необходимости»: путает пользователей и усложняет поддержку.

Итог: проектируйте API так, чтобы не пришлось его трогать.