Этот вопрос проверяет умение проектировать удобные, поддерживаемые и расширяемые API.
При проектировании API важно учитывать консистентность, предсказуемость, простоту, безопасность и документируемость. Необходимо использовать чёткие схемы данных, корректные коды статуса, версионирование и учитывать backward compatibility. Хороший API удобен для клиентов и легко расширяется.
API должно быть удобным, стабильным, логичным и безопасным.
Консистентность и предсказуемость
Единый стиль URL
Одинаковые форматы ответа
Чёткая структура ошибок
Ясность и простота
Минимум вложенности
Понятные названия ресурсов
Логичные HTTP-методы (GET, POST, PUT, DELETE)
Документируемость
OpenAPI/Swagger
Автоматическая генерация схем
Версионирование API
/v1/, /v2/
Позволяет обновлять API без ломания клиентов
Backward compatibility
Новые поля — необязательные
Сохранение старого поведения
Безопасность
Аутентификация и авторизация
Ограничение размера запросов
Rate limiting
Производительность и пагинация
Пагинация (limit, offset)
Кэширование
Иденпотентность методов
GET /users?limit=20&offset=0
Хороший API — это сочетание понятной структуры, стабильности, безопасности и удобства для клиентов.