如何根据 swagger 模式验证 JSON 模式的实例?

How do I validate an instance of JSON schema against a swagger schema?

我有一个 JSON 负载(请求或响应),我想根据我拥有的 swagger 模式验证该实例。我该怎么做?

请注意,我并不是要验证我的规范是否是 OpenAPI/Swagger 规范。

我想在不使用外部 JSON 验证器的情况下实现这一点。我也在尝试在 Go 中实现这一点(特别是 go-openapi)

谢谢。

您需要掌握定义验证规则的架构,该架构通常存储在 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
}