Отмена заказа реализована через GET: чем это опасно
В контракте описан эндпоинт, который отменяет заказ:
GET /api/v1/orders/{id}/cancel
На ревью контракта вы возражаете против такого решения. В чём его основная проблема?
- GET не поддерживает передачу идентификатора в пути — идентификатор заказа нужно передавать в теле запроса
- GET считается безопасным методом и не должен менять состояние: такой запрос могут повторить кэш, прокси или ретраи клиента
- Проблема только в именовании: достаточно переименовать путь в `/orders/{id}/cancellation`, а метод можно оставить прежним
- GET не может возвращать коды ошибок, поэтому клиент не узнает о неудачной отмене заказа
