2017-05-08 75 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 
}