Подрядчик предлагает удалять заявку методом GET
В спецификации интеграции встретился метод:
GET /api/requests/delete?id=451
Он помечает заявку удалённой. Подрядчик объясняет: «Так проще, ссылку можно просто открыть в браузере».
Почему это плохое решение?
- GET по соглашению не изменяет состояние данных: такой запрос могут повторить кэш, браузер или превью ссылки в мессенджере, и заявка удалится незаметно для пользователя
- GET не поддерживает передачу параметров, поэтому идентификатор заявки до сервиса не дойдёт и удалится не та запись, которую выбрал пользователь в интерфейсе
- GET ограничен по количеству вызовов в секунду, поэтому массовое удаление работать не будет
- GET передаёт параметры в строке запроса в открытом виде, поэтому такой вызов невозможно защитить шифрованием и идентификатор заявки увидит любой посредник
