Everything I know about good API design
Краткое руководство по хорошему API-дизайну
Хороший API — это скучный API. Пользователю должно быть интуитивно понятно, как им пользоваться, без чтения документации. Однако, в отличие от большинства систем, API почти нельзя менять: любое изменение ломает чужой код и толкает клиентов к конкурентам.
Не ломаем userspace
- Добавлять поля можно.
- Удалять, менять тип или структуру полей — нельзя.
- Даже опечатка в HTTP-заголовке
referer
навсегда останется опечаткой, потому что «мы не ломаем userspace».
Как изменять API без боли
Если изменение критично, используйте версионирование:
- Параллельно запускаем старую (
/v1/
) и новую (/v2/
) версии. - Сообщаем клиентам, ждём месяцы или годы, затем выключаем старую.
- Stripe и OpenAI делают именно так, но это всё равно «зло из необходимости»: путает пользователей и усложняет поддержку.
Итог: проектируйте API так, чтобы не пришлось его трогать.