Я пытаюсь создать приложение REST, где я пытаюсь скрыть, чтобы скрыть Business Logic от запроса и ответов. У меня есть примеры, которые я не знаю, как обращаться.REST Business Logic и обработка ошибок
Первый пример: у меня есть корзина и продукт х не может быть заказан с продуктом у. Клиент, однако, решил заказать их обоих. Как я могу дать правильное сообщение об ошибке или указать клиенту, что это запрещено. Потому что сообщение об ошибке «x и y не разрешено вместе» похоже на то, что выставляете мне Business Logic.
Структура на месте из-за различных услуг, которые у нас есть. Продукты могут быть повторно использованы, но прием заказов отличается. Например, мы можем предложить прием заказов для транспортных средств, которым нужна другая конфигурация при заказе полотенец. В обоих случаях у вас будет продукт, который имеет имя и цену и, следовательно, может быть повторно использован. Вот почему транспортные средства и ткани не могут быть заказаны вместе и не должны. Чтобы сделать это более удобным для пользователя, будет существовать услуга, которая предоставляет доступные варианты для конкретного заказа. Но должна быть часть, которая проверяет ее и дает правильную ошибку.
Второй пример: клиент имеет один отложенный ордер и не может создать новый заказ после завершения отложенного ордера. Это кажется/чувствует себя сдержанным для меня и, вероятно, следует избегать. Как это должно быть обработано?
UPDATE Так решение вопроса для моего первого примера может быть, чтобы создать что-то вроде конечной точки /продукты? Тип = транспортного средства или /произведения/комбинации? Тип = транспортного средства. Это относится к отображению разрешенных продуктов/комбинаций и имеет конечную точку /заказ, чтобы поставить продукты там, где происходит валидация. Эти конечные точки могут стоять сами по себе, но контекст может быть откуда-то еще. Правильно ли я понимаю?
Думаю, я понимаю. Я обновил сообщение на примере, можете ли вы сказать мне, считаете ли вы, что это истинное или ложное утверждение? –
Извините, я не совсем понимаю ваше описание. Я имел в виду, что вы могли бы просто «POST» на '/ mycart /' и вернуть его «400 Bad Request», если была семантическая ошибка, так как 2 продукта нельзя упорядочить вместе. Ответ может содержать правильное описание ошибки, это не будет считаться утечкой бизнес-логики. –