API 界面设计 - 切换或 2 个不同的界面

API interface design - toggle or 2 different interfaces

我在学界面设计

这是我好奇的地方。

我质疑这个,因为它可以通过切换来实现。

即用户发送 item_id 和 user_id。服务器查询数据库(该项目是否已被点赞),并更新。

感谢解答!

拥有两个切换界面的真正好处是它不需要用户知道他们试图改变的事物的当前状态(即不需要我先查询状态).

如果我是 API 的消费者,通常我会想要执行诸如 like 之类的操作。我很少能想到我想要执行 do the opposite of what I did previously 的操作(除非我感觉像 flip-flopping)。如果您没有 likeunlike 的两个端点,那么您首先必须轮询 API 以获取当前状态,然后执行您正在谈论的切换关于如果需要。

这种情况会在您的代码中引入更多逻辑,需要您对 API 进行 1-2 次调用,并假设状态在两次调用之间没有变化;而拥有两个端点可以减少逻辑,将您的 API 调用限制为每个操作 1 次,并且您不必担心状态会意外更改。

如果您尝试 like 用户已经 liked 的东西,那么 API 只会 return 一个成功的结果并且不会改变基础数据。

首选您明确指定所需状态的接口的一个原因是它将是幂等的。也就是说,即使请求多次,结果状态也是一样的。

这是一个非常人为的例子,但是如果共享同一个帐户的两个不同的人试图在足够小的 window 内喜欢同一件事,你最终可能会变成 un-liked .