当服务器收到多余的不需要的数据时,REST API响应

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

在实施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属性。

spring spring-boot rest validation http-error
1个回答
0
投票

在这种情况下,服务器应该做什么?忽略多余的数据并发送响应,通常首选成功还是错误响应?

您将研究XML的现有技术,尤其是must-ignore之类的概念。

简短版本:您需要考虑当版本1客户端尝试与版本2服务器通信时,或者当版本2客户端尝试与版本1服务器通信时(又称为前进和后退),想要发生的情况兼容性)。

例如,万维网已经发展了三十年;这样做在很大程度上是因为标准(HTTP,HTML,URI)已被限制以支持兼容性的方式发展。

例如,快速阅读Roy Fielding关于Host的文章>

早期HTTP设计中最严重的错误之一就是决定不发送作为请求消息目标的完整URI...。

现在考虑:Fielding在20年前发表了这篇文章,我们仍然没有改变它的工作方式

。 HTTP消息在大多数情况下具有与1996年发布RFC 1945时相同的语义。

如果在这种情况下HTTP错误状态最兼容时错误响应最适合?

[If

,您决定不允许使用无法识别的架构,那么您将希望选择能够准确反映该架构的元数据。

[RFC 4918,它定义了422 Unprocessable Entity的语义,包括一个很好的决策树]

422(不可处理实体)状态代码表示服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法正确(因此400(错误的请求)状态代码不合适),但无法处理其中的指令。例如,如果XML请求正文包含格式正确(即,语法正确)但语义上错误的XML指令,则可能会发生此错误情况。

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