Tamam, yani yukarıdaki açıklamalara dayanarak, aşağıdaki şemayı istiyorum: Ben birkaç varsayımlar yaptık
{
"definitions": {
"user": {
"type": "object",
"required": [ "name" ],
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "array",
"items": {
"$ref": "#/definitions/address"
}
}
}
},
"address": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [ "home", "office" ]
},
"line1": {
"type": "string"
}
}
}
}
}
Gelecekte yardımcı olmak için örneği biraz daha karmaşık hale getirin. "Kullanıcı" nesnesi için "ad" alanının zorunlu olduğunu beyan ettim. Örneğin, zorunlu olarak adrese de ihtiyacınız varsa, tanımı "gerekli" olarak değiştirebilirsiniz: ["isim", "adres"].
Temel olarak modelleri açıklamak için bir json şeması alt kümesi kullanıyoruz. Tabii ki herkes bunu bilmiyor, ama öğrenmesi ve kullanması oldukça basit.
Gördüğünüz adres türü için sınırı iki seçenek olarak ayarladım - ev ya da ofis. Bu listeye herhangi bir şey ekleyebilir veya bu kısıtlamayı kaldırmak için "enum" i tamamen kaldırabilirsiniz.
Bir özelliğin "type" öğesi "array" olduğunda, ona, dizinin iç tipini bildiren "items" ile eşlik etmeniz gerekir. Bu durumda, başka bir tanım atıfta bulunmuştum, ancak bu tanım aynı zamanda satır içi de olabilirdi. Bu şekilde, özellikle de "adres" tanımına tek başına ihtiyaç duyarsanız veya diğer modeller dahilinde olmak daha kolaydır.
{
"definitions": {
"user": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"home",
"office"
]
},
"line1": {
"type": "string"
}
}
}
}
}
}
}
}
cevap Swagger 1.2 ve Swagger 2.0 arasında farklıdır:
gibi, satır içi sürümünü istedi. Hangisini kullanmayı planlıyorsunuz? – Ron
Swagger 2.0. Teşekkürler –
Swagger editörüyle birlikte kullanmak için JSON temsilcisini veya YAML birini mi arıyorsunuz? Bu bilgilere sahip olduğumda, size alakalı bir snippet sağlayabiliriz. – Ron