只允许预期的领域?
Only allow expected fields?
我的模型需要两个字段,我使用该模型验证我的端点:
config_model = api.model('Configuration', {
'cuvettes_count': fields.Integer,
'pipettes_count': fields.Integer
})
# later
class ConfigEndpoint(Resource):
@config_endpoint.expect(config_model, validate=True)
def put(self):
我如何:
- 如果存在除指定的两个之外的密钥,则引发验证错误
- 如果两个键都不存在,但一次只需要一个,则引发验证错误
Raise a validation error if a key besides the two specified is present
目前,flask-restx 不允许开箱即用。以下 PR 应添加该功能。即使是现在,您也可以通过创建自定义模型 class 并提出更改建议来尝试将 PR 应用到您的代码中。
Raise a validation error if neither of the keys are present, but only require one at a time
我想最简单的方法是直接使用 jsonschema,即像下面这样的东西
config_model = api.schema_model('Configuration', {
'type': 'object',
'properties': {
'cuvettes_count': {'type': 'integer'},
'pipettes_count': {'type': 'integer'}
},
'anyOf': [{'required': ['cuvettes_count']}, {'required': ['pipettes_count']}]
})
遗憾的是,这仅适用于验证输入数据,不适用于封送响应。
我的模型需要两个字段,我使用该模型验证我的端点:
config_model = api.model('Configuration', {
'cuvettes_count': fields.Integer,
'pipettes_count': fields.Integer
})
# later
class ConfigEndpoint(Resource):
@config_endpoint.expect(config_model, validate=True)
def put(self):
我如何:
- 如果存在除指定的两个之外的密钥,则引发验证错误
- 如果两个键都不存在,但一次只需要一个,则引发验证错误
Raise a validation error if a key besides the two specified is present
目前,flask-restx 不允许开箱即用。以下 PR 应添加该功能。即使是现在,您也可以通过创建自定义模型 class 并提出更改建议来尝试将 PR 应用到您的代码中。
Raise a validation error if neither of the keys are present, but only require one at a time
我想最简单的方法是直接使用 jsonschema,即像下面这样的东西
config_model = api.schema_model('Configuration', {
'type': 'object',
'properties': {
'cuvettes_count': {'type': 'integer'},
'pipettes_count': {'type': 'integer'}
},
'anyOf': [{'required': ['cuvettes_count']}, {'required': ['pipettes_count']}]
})
遗憾的是,这仅适用于验证输入数据,不适用于封送响应。