I really have no knowledge of loopback.

 

 

 

From: <[email protected]> on behalf of Abhijeet Seal 
<[email protected]>
Reply-To: "[email protected]" 
<[email protected]>
Date: Monday, 25 July 2016 at 11:17
To: Swagger <[email protected]>
Subject: Re: Swagger 2.0: 'Definitions'(Or Model in 1.2) inheritance

 

Hi Ron, 

 

 

The slc loopback:swagger codegen will generate base of UserCredential as 
PersistedModel, but I want to inherit the properties of loopback inbuilt User 
Model

Foe example

“UserCredential”: {
properties: {
“password”: { “type”: “string” }
},
allOf : [
{ “$ref”: “#/definitions/User” }
]
}
}

Here instead of “#/definitions/User” I want to use loopback inbuilt model 
'User'. In this case how can we handle this scenario?


On Monday, October 27, 2014 at 5:05:37 PM UTC+5:30, Ron R wrote: 

Close, but not quite.

Ignoring the name of the sample - 
https://github.com/swagger-api/swagger-spec/blob/master/fixtures/v2.0/json/models/modelWithComposition.json
 - serves as a great sample of showing inheritance.

Composition is pretty much the same, you'd just throw out the "discriminator" 
field.

Hope this helps.

 

On 27 October 2014 13:29, mission liao <[email protected]> wrote:

Hi Ron, 

 

   I would like to compose some example to make sure what I understood is spec 
compliant.

   For 'composition':

{
“User”: {
properties: {
“id”: { “type”: “string” },
“email”: { “type”: “string” }
}
},
“UserCredential”: {
properties: {
“password”: { “type”: “string” }
},
allOf : [
{ “$ref”: “#/definitions/User” }
]
}
}

 

 For inheritance:

{
“Pet” : {
properties: {
“pet_type”: { “type”: “string” }
},
discriminator: “pet_type”,
required: [“pet_type”]
},
“Dog”: {
allOf: [
{ “$ref”: “#/definitions/Pet” }
]
}
} 

When an operation accepting Pet as a parameter, we can pass a Dog(with 
pet_type=Dog) instead.

Am I on the right track? Thanks for any advice.


On Monday, 27 October 2014 17:25:07 UTC+8, Ron R wrote: 

It is defined, I just need to expand on the documentation.

For a quick overview - there are two.. let's say "types" of inheritance with 
Swagger 2.0.

The first is composition using the "allOf" keyword - you can say that a model 
contains the properties of other models (more than one).

The second is polymorphism where the "discriminator" can be used on top of the 
"allOf" property.

Just like in 1.2, the "discriminator" must be defined at the top level model 
and it must be required.

Unlike 1.2, there's no "subTypes". Any model that includes the super mode in 
the "allOf" definition will be considered a sub type of it.

So the super model is unaware of its children, but now the child is aware of 
its parent.

 

On 27 October 2014 10:07, mission liao <[email protected]> wrote:

Hi, 

 

   Just want to confirm that if model inheritance is still undefined in swagger 
2.0.

TODO: Add explanation about composition and inheritance in the new spec.

 

   We have 'discriminator' but have nothing compared to 'subTypes'.

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

 

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

 

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to