使用框架对json体做参数验证

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

使用框架对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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值