我正在设计一个新的Web应用程序,该应用程序由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
or的影响如何sales
?它会影响返回实体的表示吗?