发布后,是否应该从后端返回发布的数据?角+ NODEJS

时间:2019-02-11 21:41:10

标签: node.js angular post crud

我有一个简单的问题。 在我的Angular&NodeJS和MySQL应用程序中,我有一个FORM,其中用户添加了hes worker,每个worker添加之后,信息都发布到了后端,用户可以看到预览以及他刚刚发布的所有信息以及他可以从此预览中删除每个工作人员。现在我有两个选择

选项一(当前正在使用)-仅从后端获取已创建工作程序的ID,并将其与创建的值一起推送到一组工作程序。
这样,我避免使用复杂的SELECT查询,该查询应该从POST路由内的3个不同表返回数据。但是我没有显示后端的实际数据。

选项2 -在每次发布后返回所有值,并将返回的值压入worker数组中进行预览。这样,我将显示来自服务器的实际数据,但我必须从POST方法返回数据,并使用一个复杂的查询,如我在选项一中提到的那样。

任何建议都是最好的做法,我们将不胜感激
我不添加任何代码,因为它们无关紧要。

2 个答案:

答案 0 :(得分:0)

您应该返回发布的数据以及状态代码201,这是REST API的许多规则之一,我建议您查看this article,它说明了REST API设计准则

答案 1 :(得分:0)

不,您不应该在POST请求后返回数据。至少根据HTTP standard。您应该只返回刚在Location header中创建的资源的URL。

假设您使用User创建了一个新的POST /users。然后,在响应中,您应该有一个状态码201(已创建),并且在位置标头中有该资源的URL。例如/users/1234,其中1234部分是用户的ID。