我有一个系统,登录的用户可以对帖子投票喜欢或不喜欢。如果他们试图点赞一个已经被点赞的帖子,他们将删除该帖子的投票。同样适用于不喜欢。作为一个 REST 新手,我正在尝试为此提出一个 url 方案,这令人困惑
目前,我的网址看起来像这样
POST /news/vote/social/:feedItemId/:vote(like|dislike|reset)
一个端点正在做所有事情,登录用户才是真正可以投票的用户
在阅读了有关 stackoverflow 的其他一些答案后,似乎还有其他可能性
PUT /news/vote/social/:feedItemId/(like|dislike)
DELETE /news/vote/social/:feedItemId
我已经看到其他答案,其中 userId 也包含在 url 中,因为它说 REST API 设计不应该反映有状态
PUT /news/vote/social/feedItemId/:userId/(like|dislike)
DELETE /news/vote/social/:userId/:feedItemId
这些 url 的问题是任何人都可以更新任何 userId 的投票,除非涉及一些后端检查
我的问题是,考虑到只有登录的人应该只能更新他们的投票,处理这些问题的正确方法是什么?