使用框架对json体做参数验证
在API接口开发过程中,大多文档对接口的属性有严格要求,这需要接收端对Json信息体做参数校验,屏蔽不合理的入参。
记录下目前接触到的对json体进行校验的框架,刚好工作中有用到
1.采用wsme中的类型定义,对json体参数进行限制
通过from wsme import types as wtypes 导入使用,就使用wsme.types中的类限定json体的参数属性,具体示例如下:
class LoadBalancerPOST(base.BaseType):
"""Defines mandatory and optional attributes of a POST request."""
id = wtypes.wsattr(wtypes.UuidType())
name = wtypes.wsattr(wtypes.StringType(max_length=255)) ###限定最大长度
description = wtypes.wsattr(wtypes.StringType(max_length=255))
enabled = wtypes.wsattr(bool, default=True) ###设置参数默认值
vip = wtypes.wsattr(VIP, mandatory=True) ####VIP为vip的数据类型定义,mandatory标识参数vip为必填项
project_id = wtypes.wsattr(wtypes.StringType(max_length=36))
listeners = wtypes.wsattr([listener.ListenerPOST], default=[])
具体查看wsattr类定义,定义复合类型的属性
datatype:参数类型
mandatory:控制参数为可选项和必选项
default: 设置参数的默认值
readonly :控制该参数只读性
class w