@darksladen

В каком виде лучше отдавать данные клиенту?

Подскажите, как правильно возвращать данные клиенту при запросе? Пишу приложение на laravel, но думаю в других фреймворках тоже самое будет. Допустим у меня есть контроллер, в котором есть метод добавления товара в корзину.. Что он должен возвращать клиенту при запросе? Запрос на него будет приходить очевидно через ajax..

У меня пока такие варианты:
- Вернуть json со статусом и ошибками, если они есть и обработать на клиенте
- Возвращать статус ответа, отличимый от 200 (301), если добавление не удалось и обработать на клиенте
- Также можно отдавать вьюшку готовую и отображать в модалке, типа товар успешно добавлен и показать его в модалке к примеру..

Вариантов как то слишком много.. Какой из них лучше, почему и какие еще есть варианты?
Также непонятно, что должен делать такой метод при обычном запросе не через ajax.. Делать редирект на предыдущий урл или корзину например?
  • Вопрос задан
  • 699 просмотров
Решения вопроса 2
@D3lphi
1) Отдавать нужно json строку с кодом ответа/статусом и тд, чтобы можно было на клиентской стороне обработать ответ и произвести необходимые действия.
2) В контроллере никакую логику не пишем. Она выносится в сервисный слой. (Это я про эту фразу "есть контроллер, в котором есть метод добавления товара в корзину").
3)
Также непонятно, что должен делать такой метод при обычном запросе не через ajax.. Делать редирект на предыдущий урл или корзину например?

Это уже вам решать. Тут все зависит от потребности. Хотя, я бы вообще не стал этот маршрут приспосабливать для "обычного запроса", создал бы другой специально для этого.
Ответ написан
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
1. Если модель переданная в API не будет изменена - то можно отдать Accepted = 202
2. Если подразумевается изменение модели, или хоть одного поля, - то нужно вернуть Ok = 200, в body положить новую модель.

Если ошибки - в любом случае возвращаем код отличный от успешного, в body ложим контракт с данными, чтобы затем обработать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AmdY
@AmdY
PHP и прочие вебштучки
Отдавайте разные заголовоки и json с обязательным полем status.
Некоторые устройства криво работают с апи без боди, так что одним заголовком не обойдёшься.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы