2016-08-26 2 views
1

В следующем определении Swagger мне нужен параметр labelValue типа LabelValueObject, так что он будет проверен и правильно десериализован. Однако я не могу понять синтаксис! Как это можно сделать?Параметры Swagger и сложные типы

swagger: "2.0" 

paths: 
    /competition: 
    post: 
     parameters: 
     - name: labelValue 
      in: formData 
      type: array 
      items: 
      type: string  ### this has to be a LabelValueObject ### 
     responses: 
     default: 
      description: Error 
      schema: 
      $ref: "#/definitions/AnyResponse" 

definitions: 
    AnyResponse: 
    properties: 
     any: 
     type: string 
    LabelValueObject: 
    properties: 
     label: 
     type: string 
     value: 
     type: string 
    required: 
     - label 
     - value 
+0

Должен ли этот параметр находиться в формеДата? –

+0

Вы правы. Я мог бы установить его на тело и использовать схему $ ref, я думаю ... Я новичок в Swagger, поэтому я пропустил это. Если это ваш вопрос, отправьте ответ. – Merott

ответ

3

Единственный способ передать объект в качестве параметра, чтобы поместить его в организме (in: body), а затем определить этот объект в schema (определении инлайн или ссылку на предопределенный объект с $ref). Вот полный пример:

swagger: "2.0" 

info: 
    title: A dummy title 
    version: 1.0.0 

paths: 
    /competition: 
    post: 
     parameters: 
     - name: labelValue 
      in: body 
      schema: 
      $ref: '#/definitions/LabelValueObject' 
     responses: 
     default: 
      description: Error 
      schema: 
      $ref: "#/definitions/AnyResponse" 

definitions: 
    AnyResponse: 
    properties: 
     any: 
     type: string 
    LabelValueObject: 
    properties: 
     label: 
     type: string 
     value: 
     type: string 
    required: 
     - label 
     - value 
Смежные вопросы