【发布时间】:2021-11-11 05:46:23
【问题描述】:
这是一件简单的事情,但它让我很好奇。
我有一个带有 video_id 和 tag 列的标签表(人们可以创建任何标签)。
假设用户想要更新他们的一个视频的标签。
他将调用一个 api 并发送他的新标签列表,然后在服务器端检查这些标签。所有消失的标签将从表中删除,所有新标签将存储在它们的位置。
现在我能想到的最明显的 api 调用是 PUT,但是从数据库的角度来看,我调用的是 POST/DELETE api,所以感觉不太对劲。
任何 api 都可能工作得很好,但我应该使用哪个?
【问题讨论】:
-
我会按照你的建议使用 PUT。一个 PUT 请求是幂等的,这意味着如果用户多次提交相同的确切请求,您将在数据库中获得相同的单个 overarching 结果。但是 POST 不是幂等的,这意味着对于同一个用户/视频 id 有许多视频请求标签,那么这些标签将在数据库中重复。