Я разрабатываю новое веб-приложение на основе REST-бэкенда и HTML + JS-интерфейса.
Есть один метод POST для изменения одного объекта (давайте назовем Config), который имеет несколько побочных эффектов в состоянии многих элементов приложения. Давайте предположим, что POST выполняется следующим образом:
POST /api/config BODY {config: ....}
В связи с этим я хотел бы показать предварительный просмотр перед внесением этих изменений, чтобы конечный пользователь мог заметить, что изменится.
Сначала я подумал о создании конечной точки GET для предварительного просмотра, посылая тело нового состояния сущности. Сюда:
GET /api/preview/items BODY {config: ....}
Может показывать новое состояние для элементов с новой конфигурацией.
GET /api/preview/sales BODY {config: ....}
Может показывать новое состояние продаж с новой конфигурацией.
Кажется хорошей идеей использовать глагол GET, так как я не изменяю состояние приложения. Однако использование тела запроса с запросами GET не рекомендуется .
Есть ли хорошая практика по этому поводу? Другим вариантом может быть сохранение конфигурации в виде черновика одним методом и отображение результатов другим, но для этого потребуется дополнительный шаг и необходимость управлять черновиками на сервере:
POST /api/preview/config BODY {config: ....}
GET /api/preview/items?idPreviewConfig=1
items
и sales
(не структура), в зависимости от конфигурации вы POST.
items
илиsales
? Влияет ли это на представление возвращаемого объекта?