我在尝试时遇到错误,但我想创建一个接受 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 部分的情况下编译和运行。所以我知道这两个参数都很好。似乎我在将 json 数组发送到 python 时遇到问题。
显式返回的错误是:
connexion.exceptions.InvalidSpecification: {'in': 'body', 'name': 'device_names', 'required': True, 'type': 'array', 'items': {'type': 'string'} , 'description': 'A list of Device Names'} 在任何给定架构下均无效
无法验证架构中的“oneOf”['properties']['paths']['patternProperties']['^/']['properties']['post']['properties']['parameters'][' items']: {'oneOf': [{'$ref': '#/definitions/parameter'}, {'$ref': '#/definitions/jsonReference'}]}
On instance['paths']['/devices/list']['post']['parameters'][2]: {'description': 'A list of Device Names', '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