NodeJS 在url查询中包含我想删除的对象的id是不是不好的做法?

mxg2im7a  于 2023-02-21  发布在  Node.js
关注(0)|答案(1)|浏览(141)

我想知道在服务器端点上发送DELETE请求是否是个坏主意

lectures/remove?id=${lecture._id}

我知道DELETE请求不应包含req.body。
通过参数或查询传递信息是否重要?或者是否有更好的方法将信息作为删除请求发送,以便从数据库中删除一些信息?
感觉只是语义问题。
感谢您提前回答。

vmpqdwk3

vmpqdwk31#

通常,如果您有RESTfulAPI,并且希望引用某个资源,则可以使用URL参数来标识该资源。
所以你会得到

DELETE /lectures/:lectureId

因为它是lectures的单一资源。
但是,您可能希望删除多个资源,在这种情况下,通常使用查询参数

DELETE lectures?id=LECTURE_1&id=LECTURE_2&id=LECTURE_3...

因此,在这里您可能缺少的"最佳实践"是,在处理resources时,应该在端点中使用名词而不是动词:

  • 保持URL无动词
  • 避免行动-考虑资源

除非您将API设计为通过调用此端点来触发删除任务/流程,否则您可以质疑此建议。
查看更多:

相关问题