REST API — интерфейс, построенный вокруг ресурсов и стандартной семантики HTTP: клиент обращается к URI, использует методы и получает представление состояния. REST — архитектурный стиль, поэтому наличие JSON и HTTP ещё не гарантирует соблюдение его ограничений.
При проектировании определяют ресурсы, методы, статусы, схемы данных, аутентификацию и авторизацию на уровне каждого объекта. В защите учитывают массовое назначение полей, перебор идентификаторов, лимиты, идемпотентность, журналирование и версионирование.
Запрос PATCH /accounts/123 проверяет не только действительность токена, но и право пользователя изменять именно счёт 123 и только разрешённые поля. Повтор запроса регистрируется с correlation ID, а лишнее поле роли отклоняется схемой.
Нет. Формат представления согласуется через HTTP; JSON распространён, но не является определяющим признаком REST.
Почему проверка роли недостаточна?Пользователь с разрешённой ролью может обратиться к чужому объекту; нужна объектная и полевая авторизация.
Нужно ли версионировать API?Изменения контракта требуют управляемой совместимости; способ версионирования выбирают заранее и документируют жизненный цикл версий.