2017-05-08 64 views
0

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

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

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

谢谢。

回答

2

您需要获取定义验证规则的模式,这通常存储在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 
}