Following swagger specifications, how can I define json of nested objects to yaml?

14,242

Solution 1

In a schema, you don't want to have the values, only the description of the values.

CountryCombo:
    type: object
    properties:
        options:
            type: object
            properties:
                option:
                    type: array
                    items:
                        type: object
                        properties:
                          id:
                            type: string
                          value:
                            type: string

Solution 2

The above answer is also right but I already implemented this in my yaml. I found that I can also define array by creating another definition.

CountryCombo:
    type: object
    properties:
        options:
            type: object
            properties:
                option:
                    type: array
                    items:
                        $ref: '#/definitions/Country_row'

Country_row:
    type: object
    properties:
      id:
        type: string
      value:
        type: string
Share:
14,242

Related videos on Youtube

Paypal Paypal
Author by

Paypal Paypal

Updated on September 16, 2022

Comments

  • Paypal Paypal
    Paypal Paypal over 1 year

    I am having a problem in defining the array of objects in swagger yaml. Swagger editor is giving an error everytime I try to define the type: array part of the yaml. I defined it, but it is not right as it is giving an error. Following is the json I am trying to define in swagger yaml.

    {
        "CountryCombo": {
            "options": {
                "option": [{
                    "id": "GB",
                    "value": "GB Great Britain"
                }, {
                    "id": "US",
                    "value": "US United States"
                }, {
                    "id": "AD",
                    "value": "AD Andorra, Principality of"
                }]
            }
        }
    }
    

    I defined this json into swagger yaml like this but it is giving an error:

    CountryCombo:
        type: object
        properties:
            options:
                type: object
                properties:
                    option:
                        type: array
                        items:
                            - id:
                                type: string
                                description: GB
                              value:
                                type: string
                                description: GB Great Britain
                            - id:
                                type: string
                                description: US
                              value:
                                type: string
                                description: US United States
                            - id:
                                type: string
                                description: AD
                              value:
                                type: string
                                description: AD Andorra, Principality of
    

    Can anyone suggest me how would I define this json in yaml following swagger specifications?

  • Rijk
    Rijk almost 7 years
    I like this version for scenarios where I would re-use the Country_row definition in several places.
  • Marco Altieri
    Marco Altieri almost 7 years
    That's definitely the best solution