swadger validadtion ошибка для списка в python - PullRequest
0 голосов
/ 11 июня 2019

Я разрабатываю Python API с флягой и swagger, и я хочу изменить один из входных данных со строки на список:

Это текущий рабочий код для схемы:

   /question:
    post:
      operationId: processor.convertInputString
      tags:
        - People
      summary: Create a person and add it to the people list
      description: Create a new person in the people list
      parameters:
        - name: input_string_2
          in: body
          description: Person to create
          required: True
          schema:
            type: object
            properties:
              question:
                type: list
                description: question to match

      responses:
        201:
          description: Successfully created person in list

и запрос, который я использую:

data =  {"question": "processor","num_results":3}
headers = {'content-type': 'application/json'}
url = "http://localhost:5000/api/question"
data = requests.post(url,data=json.dumps(data), headers=headers)

Это отлично работает, но мне нужно поменять {"question": "processor"} на:

{"question": ["processor"]}

но когда я делаю этот запрос, я получаю эту ошибку:

'{\n  "detail": "[\'processor\'] is not of type \'string\'",\n  "status": 400,\n  "title": "Bad Request",\n  "type": "about:blank"\n}\n'

Поэтому я попытался изменить тип данных со строки на список в схеме:

  schema:
    type: object
    properties:
      question:
        type: list
        description: question to match

Но я получаю другуюошибка с этим.

Failed validating 'oneOf' in schema['properties']['paths']['patternProperties']['^/']['properties']['post']['properties']['parameters']['items']:
    {'oneOf': [{'$ref': '#/definitions/parameter'},
               {'$ref': '#/definitions/jsonReference'}]}

On instance['paths']['/question']['post']['parameters'][0]:
    {'description': 'Person to create',
     'in': 'body',
     'name': 'input_string_2',
     'required': True,
     'schema': {'properties': {'question': {'description': 'question to '
                                                           'match',
                                            'type': 'list'}},
                'type': 'object'}}

1 Ответ

1 голос
/ 11 июня 2019

Массив / список строк определяется как

question:
  type: array
  items:
    type: string

type: list не является допустимым значением для type в OpenAPI.

...