openapi新增人员踩坑系列三:"数据状态不允许引入"原创
33人赞赏了该文章
1,122次浏览
编辑于2020年12月08日 16:44:43
近日做openapi(开放平台)的新增人员的案例,发现按照自己想的格式去写参数,问题还是挺多的,特此记录下每一步遇到的问题及解决方案。
本次问题:"数据状态不允许引入"
案例如图:
解决过程:
还是打断点跟源码!(不知道怎么找源码的,可以参考帖子:苍穹如何根据url定位到映射的类,如何根据url追溯源码?)看报错是数据状态的问题,刚开始为了快速解决问题就直接把数据状态这个参数删除了,发现删除就不报这个错了,但是本着追求剖析问题本质的初心【emoji】,继续打断点看哪里报出来的提示。
接着上次的源码断点继续往后面跟
#%¥@……**()¥*)()¥:}{}:?》:}{}@&*()&……¥*)》?“”》:P>L{+_
中途还是历经千辛万苦,最终你能找到,抛出这个问题的是在这里。这里if里的条件满足了,才抛出这个异常。
进入这个if条件,你能看得到是这个表达式来返回一个布尔值。这个表达式啥意思可能大家看不太懂,我本来也看不懂,于是我开了下挂,得知他是字段是否引入的判断。于是我们就想起来了,引入引出对于每个字段都可以控制是否需要引入引出,应该是这个状态字段(status)不需要传。(细心的你可能就发现了,为什么openapi会牵扯到引入引出???因为目前系统对于外部进来的数据,保存的都是走的一套逻辑,openapi的save底层调用了引入的save逻辑)
最终我们在界面上验证,确实status字段的允许引入是关闭的,所以最终的处理是删除该字段。
这里把status删除,本次题目这个问题就解决了,但是,下图不是最终的可以执行的参数格式,踩坑还在继续中,不要抄下下图的入参!!!
最终可以执行的参数格式是什么样子的呢,请看后期!