视图标志应该由 API 还是消费者更新?

Should a view flag be updated by API or the consumer?

我希望这个问题太主观了,因为我实际上正在寻找一个有意义的 "best practice"。但是,问题比这种情况更广泛。

假设我在某个对象上有一个视图标志(是否看到)。当看到这个对象时,我看到三个选项让它成为现实:

  1. 让应用消费者通过发出 UPDATE 调用
  2. 来设置它
  3. 当我们调用GetObject方法时,我们会自动将"seen"设置为true
  4. 我们在API中添加一个方法说SetToSeen消费者负责设置

这里的有利方法是什么?

对我来说,这取决于谁使用这个标志

如果是客户端,那么客户端应该更新对象(也许"seen"可以读成"displayed to the user")像PUT /object/{id}/seen.

如果这仅适用于服务器并读取为 "displayed to the client",则服务器应在提供对象时进行更新。