英文:
How do I validate an instance of JSON schema against a swagger schema?
问题
我有一个 JSON 负载(请求或响应),我想要根据我拥有的 Swagger 模式对该实例进行验证。我该如何做到这一点?
请注意,我并不是要验证我的规范是否符合 OpenAPI/Swagger 规范。
我希望在不使用外部 JSON 验证器的情况下实现这一目标。我也希望在 Go 中实现这个(具体来说是 go-openapi)。
谢谢。
英文:
I have a JSON payload (request or response) and I want to validate that instance against a swagger schema that I have. How do I do that?
Please note that I am not trying to validate if my spec is an OpenAPI/Swagger spec.
I'd like to achieve this without the use of external JSON validators. I am also trying to achieve this in Go (specifically go-openapi)
Thanks.
答案1
得分: 3
你需要获取定义验证规则的模式,通常存储在swagger规范定义属性中。
你还需要获取你的模型(JSON数据结构,可以是映射或结构体)。
这是一个示例:
var model models.User
json.Unmarshal(bytes, &model)
var spec *spec.Swagger = getSpec()
schema := spec.Definitions["User"]
if err := validate.AgainstSchema(schema, &model, strfmt.Default); err != nil {
return err
}
英文:
You need to get a hold of the schema that defines your validation rules, that's typically stored in the swagger spec definition property.
And you need to get your model (json data structure, can be a map or a struct).
Here's an example:
var model models.User
json.Unmarshal(bytes, &model)
var spec *spec.Swagger = getSpec()
schema := spec.Definitions["User"]
if err := validate.AgainstSchema(schema, &model, strfmt.Default); err != nil {
return err
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论