请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

guoqp
高级会员   /  发表于:2023-4-11 14:35  /   查看:832  /  回复:6
本帖最后由 Simon.Sun 于 2023-4-12 09:04 编辑

不好理解这个算不算BUG


从上图看出传入的参数是允许为空的,只是为空时自动忽略,所以我的理解应该是可以不用传入参数的

但实际测试,如果传入的参数不全(如少一个或多个参数),会立即报错,如下
{  "ErrCode": 500,  "Message": "The given key 'pc' was not present in the dictionary.",  "Log": "14:25 执行's'命令, 请求方式:GET, 用户:Administrator\r\n参数:\r\npa = \"a\"\r\npb = \"1\"\r\n错误码: 500\r\n信息: The given key 'pc' was not present in the dictionary.\r\n's'命令执行结束, 用时:14毫秒。\r\n"}这个提示就是我没有传入参数pc
那如果我某些参数是可选的怎么办,也必须传一个空值进来

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

6 个回复

倒序浏览
guoqp
高级会员   /  发表于:2023-4-11 14:36:37
沙发
我觉得这个参数只要没有设置为必填,那就可有可无,我们内部能判断是否传入参数值就行了,比如如果未传入该参数,那我们可以忽略相关处理逻辑。
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2023-4-11 15:26:50
板凳
大佬您好,我说说我关于咱们服务端命令数据验证的理解,咱们服务端命令的数据验证是主要是用户咱们在活字格中调用服务端用的,即参数可以为空,在页面上调用服务端命令的时候,参数可以不填,如下没这个服务端命令我是在按钮中调用的


同理当开启数据验证的时候,调用服务端命令若参数为空,就会在执行的时候报错


我猜测您说的是在外部以API的形式调用服务端命令,即使我这边设置了其他两个参数可以为空,但调用的时候仍然会校验
如下,我这边只有第一个参数,参数1不能为空

外部调用API,报错

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
guoqp
高级会员   /  发表于:2023-4-11 16:31:31
地板
Grayson.Shang 发表于 2023-4-11 15:26
大佬您好,我说说我关于咱们服务端命令数据验证的理解,咱们服务端命令的数据验证是主要是用户咱们在活字格 ...

就是这意思,第三方POST过来的时候我想忽略掉一些不需要的参数
比如我们一个合同接口,第一阶段只需要传入合同基本信息相关参数,第二阶段则需要传入合同终版附件及客户单位的SAP客户编码等信息

也就是同一个接口,我不同阶段使用的参数是不一样的,并不需要把所有参数都写一遍
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2023-4-11 17:51:30
5#
了解了,感谢大佬的反馈。这个问题可能当个需求去记录更加合适些,就是如果服务端命令的参数没有开启非空校验,在通过 HTTP 请求调用改方法时,这些参数可以不传输。而现在的情况是,即使参数没有设置验证,参数也必须传输(可以传空值)。
回复 使用道具 举报
guoqp
高级会员   /  发表于:2023-4-11 22:06:50
6#
Simon.Sun 发表于 2023-4-11 17:51
了解了,感谢大佬的反馈。这个问题可能当个需求去记录更加合适些,就是如果服务端命令的参数没有开启非空校 ...

需要再提个需求么
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2023-4-12 09:04:24
7#
不用了,主要是为了确认大佬是不是这个意思,这边回去调整下帖子的板块,感谢大佬的反馈。
已经记录需求,编号:42126,后续产品经理会评估该需求的合理性以及实现的必要性、可行性,然后加入开发计划。欢迎您继续积极反馈,帮助我们提升和完善产品功能。


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部