Я получаю ошибки, когда пытаюсь это сделать, но я хотел создать конечную точку, которая принимает 2 параметра запроса и 1 элемент тела, список имен. Когда я запускаю его в подключении, но сообщаю, что это неверная спецификация.
/devices/list:
post:
tags: [Devices]
operationId: app.get_devices
summary: Gets a complete list of devices.
parameters:
- $ref: '#/parameters/foo-t'
- $ref: '#/parameters/bar-t'
- in: body
name: device_names
required: true
type: array
items:
type: string
description: a list of devices
...
Он компилируется и запускается без секции - in: body. Так что я знаю, что 2 параметра хороши. Кажется, у меня возникла проблема с применением отправки массива JSON в Python.
Явно возвращаемая ошибка:
connexion.exceptions.InvalidSpecification: {'in': 'body', 'name': 'device_names', 'required': True, 'type ':' array ',' items ': {' type ':' string '},' description ':' Список имен устройств '} недопустим ни для одной из указанных схем
Ошибка проверки'oneOf' в схеме ['properties'] ['paths'] ['patternProperties'] ['^ /'] ['properties'] ['post'] ['properties'] ['parameters'] ['items']: {'oneOf': [{'$ ref': '# / определений / параметр'}, {'$ ref': '# / определений / jsonReference'}]}
В пути экземпляра [''] [' / devices / list '] [' post '] [' parameters '] [2]: {' description ':' Список имен устройств ',' in ':' body ',' items ': {'type': 'string'}, 'name': 'device_names', 'required': True, 'type': 'array'}
Мое желаемое конечное состояние - это то, что я могу сказать:
//In javascript
$.post("devices/list", {device_names: ["a","b","c"]}, {params:{foo:1, bar:42}}).success( x => {
//...
});
# In Python3
def get_devices(foo, bar, device_names):
pass