对于我正在为Nodejs
API 处理的某个内部端点,我被要求在发送响应之前根据同一对象的属性visibility
的值动态更改属性status
的值。
例如,假设我有一个表示用户配置文件的对象。用户可以具有visibility
"实时"或"隐藏",但status
可以是空闲、破坏、更新。
对我的要求是,当我发送包含这两个属性的对象响应时,我会根据visibility
的当前值用另一个值覆盖status
值 - 所以如果visibility
是实时的,那么我应该status
设置为ACTIVE,如果visibility
是隐藏的,那么status
应该是非活动的(两个状态值在数据库内部或这个对象的枚举(,然后如果status
不是空闲的,我应该将其值更改为BUSY
因此,我不仅根据visibility
的价值来改变它的价值,而且还根据它自己的价值而不是价值来改变它的价值!
我只是想知道这是否是 API 的良好做法(除了一些奇怪的额外复杂性层,以及客户端稍后也会根据状态请求相同对象的不一致,这意味着反向映射(?
status
对不同的用户来说并不意味着同样的事情,拥有相同的名称可能会令人困惑,但如果有很好的文档,这不是问题。
如果映射变得过于复杂,则始终可以保留这两个值,但随后必须使它们保持同步。