2015-08-27 3 views
4

Мы используем Swagger 2.0 для нашей документации. Мы про грамматически создаем спецификацию swagger 2.0 прямо из наших документов по разработке данных.Могу ли я определить объекты вложенных массивов в swagger 2.0

Наша модель очень сложная и вложенная. Я хотел бы понять, можем ли мы определить вложенные объекты массива, определенные в строке.

для например:

{ 
    "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" 
          } 
         }, 
         "Person": { 
          "type": "object", 
          "properties": { 
           "name": { 
            "type": "string" 
           } 
          } 
         } 
        } 
       } 
      } 
     } 
    } 
} 

У нас есть много случаев, когда мы сталкиваемся с этим в нашей модели и определения # ССЫЛКА не вариант, который мы хотим рассмотреть в это время. Нам нужно это для обработки inline.

В соответствии с следующим сообщением: https://github.com/swagger-api/swagger-editor/issues/603#evenenter code here t-391465196 выглядит так, как будто он не поддерживается для обработки объектов вложенных объектов, определенных inline.

Поскольку у многих крупных предприятий есть очень сложная модель данных, мы хотели бы, чтобы эта функция поддерживалась в спецификации swagger 2.0.

Есть ли какие-либо мысли об этой функции для добавления.

+0

Похоже, что этот вопрос относится к домашней странице swagger/forum/bugtracker. – m02ph3u5

+0

Многие фреймворки автоматически создадут схемы '$ ref' для вас. Можете ли вы рассказать больше о том, почему это невозможно с точки зрения моделирования? – fehguy

+0

@fehguy можете ли вы указать нам некоторые рамки, которые будут создавать схемы ref ref. –

ответ

3

Ваш документ является недействительным, и это не касается вложенных массивов: свойство Person не допускается в схеме Swagger 2.0 внутри items.

единственным разрешенным свойства в schema являются: $ref, format, title, description, default, multipleOf, maximum, exclusiveMaximum, minimum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxProperties, minProperties, required , enum, additionalProperties, type, items, allOf, properties, discriminator, readOnly, xml, externalDocs, example.