Załóżmy, że mam model User i UserType. Chciałbym dodać odniesienie do UserType-ID w modelu użytkownika. Dokumentacja typu "swagger" pokazuje jedynie jak odwoływać się do innego (całego) modelu, a nie tylko do jednej z jego właściwości.Sposób odwoływania się do identyfikatora innej definicji modelu w Swagger
Tak więc zastanawiałem się, czy możliwe jest odniesienie tylko do właściwości innej definicji modelu.
"definitions": {
"User": {
"required": [
"username",
"typeId"
],
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"username": {
"type": "string"
},
"typeId": {
"$ref": "UserType.id" // ==> this doesn't work! and without
// the ".id" part it would include all
// the properties of UserType
}
}
},
"UserType": {
"required": [
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": "string"
}
}
}
}
Albo jest to, że w ogóle nie jest możliwe i powinno być zawsze tylko:
"definitions": {
"User": {
...
"properties": {
"typeId": {
"type": "integer",
"format": "int32"
}
}
},
...
}
Zanim przejdę do odpowiedzi, dlaczego chcesz odwołać się do * pierwotnej * definicji? Co to oszczędza na piśmie? – Ron
Sądzę, że myślę, że każdemu, kto czyta dokumentację REST, byłoby bardziej przejrzyste, aby zobaczyć "połączony" model. – roberkules
I w przypadku, gdy musiałbym zmienić typ UserType.id, nie musiałbym aktualizować wszystkich odniesień. – roberkules