繁体   English   中英

使用Golang对可选字段进行JSON模式验证

[英]JSON schema validation of optional fields using Golang

Golang JSON模式验证库验证服务请求/响应中是否存在模式上的必填字段。

我需要验证服务请求或响应中的任何字段都必须是架构上的属性。 如果架构中不存在有效负载中的属性,则验证应失败。

例如: GET响应:

{
   "pet": "dog",
   "name": "Scooby",
   "licence": "123-123"
}

在我的示例JSON模式中,所有字段都不是必需的。 但是,如果我在服务中将字段“ pet”更改为“ petBreed”,那么它将不会被JSON模式验证器(例如https://github.com/xeipuuv/gojsonschema )捕获。

并非所有字段都必须填写。 任何人都可以在Go中建议一个图书馆:

  1. 验证所有响应字段都在模式中
  2. 如果模式中的字段不在响应中,则不会失败

JSON Schema定义additionalProperties为了这个目的,像这样的模式应该工作:

{
    "type": "object",
    "additionalProperties": false,
    "properties":{
        "pet": ...,
        "name": ...,
        "license": ...,
    },
}

这已实现,但未在gojsonschema中进行gojsonschema

请注意, additionalProperties是一个模式,而不仅仅是一个布尔值,即,您可以对未知属性进行任意验证,而不仅仅是禁止它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM