Golang JSON模式验证库验证架构上的必需字段是否存在于服务请求/响应中。
我需要验证服务请求或响应中的任何字段都必须是架构上的属性。如果架构中不存在有效内容中的属性,则验证将失败。
例如: GET 响应:
{
"pet": "dog",
"name": "Scooby",
"licence": "123-123"
}
在我的示例JSON模式中,不需要任何字段。但是,如果我改变了领域" pet" to" petBreed"在我的服务中,它不会被JSON模式验证器捕获(例如https://github.com/xeipuuv/gojsonschema)。
不需要所有字段。任何人都可以建议使用Go中的库:
答案 0 :(得分:1)
JSON Schema为此目的定义additionalProperties
,类似这样的模式应该起作用:
{
"type": "object",
"additionalProperties": false,
"properties":{
"pet": ...,
"name": ...,
"license": ...,
},
}
这是implemented,但未在gojsonschema
中记录。
请注意additionalProperties
是一个模式,而不仅仅是一个布尔值,即您可以对未知属性进行任意验证,而不仅仅是禁止它们。