陪你听风

WebApi中间件框架注意事项

电脑版发表于:2020/5/26 17:06

 在写调用WebApi接口的中间件框架时,有些类型错误,需要记录一下。

像这种code返回成功!出参却没有数据,错误原因有几种情况!

1,我们的出参需要映射系统WebApi的出参字段,要保证映射的字段名称不出错,如图:

   

2,字段的类型也要和映射的字段类型保持一致。

3,需要自己调试,看看请求的表的参数是否有符合入参条件的数据,值是否有。(可先查询数据库)

4,实在不行的话,可能就是遇到出参类型不一致的情况,如下图:


像这种情况,出参的数据类型有ArrayList,对象,那我们映射的时候情况如下:


我们的入参数据经过Json序列化+加密打包,异步 调用请求url,  返回结果

出参的时候反序列化+解密得到数据。

            var model = JsonConvert.DeserializeObject<ResponseModel>(await response.Content.ReadAsStringAsync(), JsonSettings.Current);
            //检查响应代码
            model.CheckResponseCode();
            var payJToken= JsonConvert.DeserializeObject<JToken>(model.Data.DesToString(_options.Key, _options.Iv));
            var outFeeInfoRtn = _mapper.Map<List<OutFeeInfo>>(payJToken["OutFeeInfos"]);
            var arrayRtn = _mapper.Map<ArrayList>(payJToken["Array"]);
            var prepaySettlementRtn = new PrepaySettlementViewModel();
            prepaySettlementRtn.Array = arrayRtn;
            prepaySettlementRtn.FeeInfo = outFeeInfoRtn;
            
                  return new BaseViewModel
                        {
                            Code = model.Code,
                            Message = model.Message,
                            Data = prepaySettlementRtn
                        };


我们就只能单个映射ArrayList类型和实体类型,最后实例ViewModel,完美得到出参数据!

做出来之后感觉很棒,虽然过程繁琐了些。。。


下面介绍这种错误!


这是测试某个接口时候,入参调用数据,返回的错误信息!

百度的讲解:


仔细检查了之后,发现原因:由于自己测试接口用的oracle数据库是本地的,没有更新,然而系统的库存在被被人修改,添加参数的情况,

自己的本地库却没有进行更新操作,所以这种是自己库的某张表缺少字段,而你要进行增删改操作时就无法写入数据。

解决方法:找到具体的方法,查询具体的实习方法,看sql语句操作的那些表,需要添加字段。

-- Add/modify columns 
alter table F_OP_FEEDETAIL add AUDIT_IDvarchar2(10);
-- Add comments to the columns 
comment on column F_OP_FEEDETAIL.AUDIT_ID
  is '审阅人ID';


添加好字段之后在调试接口就行了,可能有些不单是一张表有错哦,所以需要耐心调试呢!

关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢