2016-09-21 5 views
0

Я пытаюсь описать следующий пост параметра в чванстве:массива объектов в качестве входного параметра в чванствах

{ 
    "sources": [ 
     { 
      "id": 101, 
      "parentId": 201 
     },{ 
      "id": 102, 
      "parentId": 201 
     },{ 
      "id": 102, 
      "parentId": 202 
     } 
    ], 
    "destinationId": 301, 
    "param1": "value 1", 
    "param2": "value 2", 
} 

Вопрос заключается в том, что sources представляет собой массив объектов, что чванство, кажется, не поддержка. Вот что я пробовал:

paths: 
    /bulk-action: 
     post: 
      parameters: 
       - name: sources 
        in: formData 
        type: array 
        enum: 
         $ref: '#/definitions/BulkSource' 
       - name: destinationId 
        in: formData 
        type: integer 
       - name: param1 
        in: formData 
        type: string 
       - name: param2 
        in: formData 
        type: string 
definitions: 
    BulkSource: 
     type: object 
     properties: 
      id: 
       type: integer 
      parentId: 
       type: integer 

Любая идея о том, как обойти это ограничение?

ответ

6

Если я правильно понял, ваше тело запроса для отправки - это объект json вместо form. В таком случае, ваша развязность документ должен быть изменен следующим образом:

  1. Когда тело запроса является JSON, параметр с in: body используются вместо нескольких параметров in: formData.
  2. Если in является body, a schema объект не требуется.
  3. Определены свойства json под кодом schema. Если имущество type составляет array, items объект не требуется.

Ниже приведен пример:

paths: 
    /bulk-action: 
    post: 
     consumes: 
     - application/json 
     parameters: 
     - name: body 
      in: body 
      schema: 
      properties: 
       sources: 
       type: array 
       items: 
        $ref: '#/definitions/BulkSource' 
       destinationdId: 
       type: integer 
     responses: 
     200: 
      description: OK 
definitions: 
    BulkSource: 
    type: object 
    properties: 
     id: 
     type: integer 
     parentId: 
     type: integer 
+0

могли бы вы сказать мне, где вы делаете эти изменения. Или я хочу спросить, в каком файле написан код выше. Я не могу найти вышеуказанный код в моем API swagger. –