我正在实现一个RESTful API,但对于不可更改的数据存在的'社区接受'行为感到不确定。例如,在我的API中有一个“文件”资源,创建后包含许多字段,在创建后无法修改,例如文件的二进制数据以及与其相关联的一些元数据。此外,“文件”可以有书面描述和标签。
我的问题涉及对其中一个“文件”资源进行更新。针对特定“文件”的GET将返回与该文件相关的所有元数据、描述和标签,以及文件的二进制数据。在特定“文件”的PUT中是否应包括“只读”字段?我意识到这可以编码成两种方式:a) 在PUT数据中包括只读字段,然后验证它们是否与原始数据匹配(或发出错误),或b) 忽略PUT数据中只读字段的存在,因为它们不能更改,如果它们不匹配或缺失,则从不发出错误,因为逻辑会忽略它们。
似乎可以采用任何一种方法并且都可以被接受。第二种忽略只读字段的方法可能更紧凑,因为API客户端可以跳过发送该只读数据,这对于知道自己在做什么的人来说似乎很好...