REST创建请求应拒绝具有自动生成的字段的主体还是忽略那些字段?

问题描述 投票:0回答:1

鉴于实体具有自动生成的字段,例如createdDate:在POST请求中,最好是拒绝任何正文中包含createdDate值的请求,因为用户不应该尝试设置此值,或者我应该忽略用户设置的内容,然后自动生成createdDate值并将新值包括在响应中?

rest api-design
1个回答
0
投票

通常,服务器应通过诸如HTML Web forms之类的形式表示形式来教客户可以为或必须为某些资源设置的值,其中各个控制元素的提供使客户可以指定正确的值服务器期望或支持。在这种情况下,除了服务器直接告诉客户的能力外,客户对资源的能力不了解。

[如果服务器告知客户端某个属性支持某个范围,可以说介于0到100之间,并且客户端尝试发送小于0或大于100的值或非数字值,我希望返回错误,提示某些支持的元素使用不当。

关于是否忽略某些属性的某些输入值或对于服务器直接讲授的[[not属性是否返回错误,关于返回错误还是只是忽略它,这完全取决于设计选择IMO 。通过POST,根据资源自身的语义来处理有效负载。这里最好的建议是指向大表弟browsalbe Web,并询问您将如何在其中使用它,并在REST体系结构中使用相同的概念。在这里,robustness priciple要求:

对您的工作要保守,对别人接受的东西要宽容

对您发送的内容保持保守,对您接受的内容保持直译

因此,我倾向于忽略客户端不应该设置的属性,但要精确地确定返回给客户端的内容。但是,如果客户端发送的数据假设服务器对资源的内部知识有所了解,而服务器没有告知,则它违反了REST原则alltogeter,因此指出了“非RESTful”用法。

© www.soinside.com 2019 - 2024. All rights reserved.