我的模型需要两个字段,我用该模型验证我的端点:
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):
如何:
- 如果存在除指定的两个键之外的键,则引发验证错误
- 如果两个键都不存在,但一次只需要一个,则引发验证错误
如果除了指定的两个密钥之外还有一个密钥存在,则引发验证错误
目前,flask restx不允许开箱即用。以下PR应添加该功能。即使现在,您也可以尝试将PR应用于代码,方法是创建一个带有建议更改的自定义Model类。
如果两个密钥都不存在,但一次只需要一个,则引发验证错误
我想最简单的方法是直接使用jsonschema,即类似于bellow 的东西
config_model = api.schema_model('Configuration', {
'type': 'object',
'properties': {
'cuvettes_count': {'type': 'integer'},
'pipettes_count': {'type': 'integer'}
},
'anyOf': [{'required': ['cuvettes_count']}, {'required': ['pipettes_count']}]
})
不幸的是,这只适用于验证输入数据,而不适用于封送处理响应。