当服务器收到多余的不需要的数据时,REST API响应
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当服务器收到多余的不需要的数据时,REST API响应相关的知识,希望对你有一定的参考价值。
在实施REST API时,将对服务器接收到的请求主体进行验证。
如果不需要(以及未在REST API规范中指定的某些额外信息)以JSON属性的形式出现并且在验证期间找到,该怎么办?在这种情况下,服务器应该怎么做?忽略多余的数据并发送响应,通常首选成功还是错误响应?
如果在这种情况下HTTP error status
最兼容时错误响应最适合?
下面是一个例子:
"data":
"type": "user",
"attributes":
"firstName": "Kazi Mahbubur",
"lastName": "Rahman",
"age": 30,
"x": "x",
"y": "y",
"z": "z",
在以上请求正文(JSON类型)中,根据REST API规范,不需要x,y,z属性。
在这种情况下,服务器应该做什么?忽略多余的数据并发送响应,通常首选成功还是错误响应?
您将研究XML的现有技术,尤其是must-ignore之类的概念。
简短版本:您需要考虑当版本1客户端尝试与版本2服务器通信时,或者当版本2客户端尝试与版本1服务器通信时(又称为前进和后退),想要发生的情况兼容性)。
例如,万维网已经发展了三十年;这样做在很大程度上是因为标准(HTTP,html,URI)已被限制以支持兼容性的方式发展。
例如,快速阅读Roy Fielding关于Host的文章>
。 HTTP消息在大多数情况下具有与1996年发布RFC 1945时相同的语义。早期HTTP设计中最严重的错误之一就是决定不发送作为请求消息目标的完整URI...。
现在考虑:Fielding在20年前发表了这篇文章,我们仍然没有改变它的工作方式
,您决定不允许使用无法识别的架构,那么您将希望选择能够准确反映该架构的元数据。如果在这种情况下HTTP错误状态最兼容时错误响应最适合?
[If
[RFC 4918,它定义了422 Unprocessable Entity的语义,包括一个很好的决策树]
422(不可处理实体)状态代码表示服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法正确(因此400(错误的请求)状态代码不合适),但无法处理其中的指令。例如,如果XML请求正文包含格式正确(即,语法正确)但语义上错误的XML指令,则可能会发生此错误情况。
以上是关于当服务器收到多余的不需要的数据时,REST API响应的主要内容,如果未能解决你的问题,请参考以下文章