1 回答

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
在 invopop/jsonschema 中使用 Go 標(biāo)簽并不能很好地支持這些復(fù)雜的用例。任何打破常規(guī)用例的東西我都建議實(shí)施該JSONSchema()方法,以便您可以手動(dòng)定義對(duì)象。按照你的例子:
type Boulou struct {
Name string `json:"name"`
Transformers []TransformerConfig `json:"transformers"`
}
func (Boulou) JSONSchema() *jsonschema.Schema {
props = orderedmap.New()
props.Set("name", &jsonschema.Schema{
Type: "string",
Title: "Name",
})
props.Set("transformers", &jsonschema.Schema{
Type: "array",
Title: "Transformers",
Items: &jsonschema.Schema{
Ref: ".....",
If: "properties.kind.const=convert_swim",
Then: "required[0]=convert_swim_config",
},
})
return &jsonschema.Schema{
Type: "object",
Title: "Boulou",
Properties: props,
}
}
我沒(méi)有直接測(cè)試過(guò)這個(gè),但我相信你明白了。您需要手動(dòng)弄清楚Ref您的TransformerConfig是什么。
更新:現(xiàn)在有一個(gè)新的PR #52,一旦發(fā)布,應(yīng)該會(huì)更容易做到!
- 1 回答
- 0 關(guān)注
- 223 瀏覽
添加回答
舉報(bào)