使用框架对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 wsattr(obje

在API开发中,为了确保接收到的Json信息符合规范,通常需要进行参数验证。本文介绍了两种Python框架:wsme和jsonschema。wsme通过wsattr定义json参数的类型、必填性、默认值和只读性;而jsonschema则提供了一种结构化验证Json的机制,适用于更复杂的验证场景。
最低0.47元/天 解锁文章
1242

被折叠的 条评论
为什么被折叠?



