AriesHoo / FastLib

一个Android项目级快速开发框架,节约大部分写常用功能时间以实现更多项目业务功能及体验上的优化。使用说明见wiki
https://github.com/AriesHoo/FastLib/wiki
Apache License 2.0
492 stars 95 forks source link

BaseRepository 里面,统一处理那部分好像不行 #56

Closed yueye410 closed 4 years ago

yueye410 commented 4 years ago

//用于解析 统一返回实体统一做相应的错误码--如登录失效 这里面怎么统一处理呢?断点进不来,谢谢。 image

AriesHoo commented 4 years ago

你是使用的Demo测试的还是自己项目里面集成出错?

AriesHoo commented 4 years ago

我demo 的BaseRepository是用于处理返回数据格式如BaseEntity格式的,因为demo的示例返回的格式不是BaseEntity形式的故不会执行。实际项目中会有BaseEntity格式的数据返回形式就可以处理了

AriesHoo commented 4 years ago

如果返回的实体类似BaseEntity(这里的类似不是说所有字段一模一样),在BaseRepository的子类需要调用BaseRepository transform方法 如我们公司所有api格式都是BaseEntity形式的。

如登录功能 LoginRepository是BaseRepository 子类登录接口BaseEntity 中的T是UserEntity实体 如下所写

/**

注意 1:上面return 调用的transform为BaseRepository 里统一处理方法因为我司设计api统一格式为BaseEntity形式 不同的只是data这个泛型。如果返回的全都是不统一格式可不用理会BaseRepository 里的统一处理,如demo中的。此处未在demo说明给你带来了理解上的差异深表抱歉 2:上面getService()返回的LoginService对应login接口

/**

不知这么解释是否清楚?不清楚可继续问

yueye410 commented 4 years ago

谢谢。 我们返回数据不太统一,怎么统一处理拦截呢? 🤦‍♂️

AriesHoo commented 4 years ago

返回结果是啥样的 有可能和BaseEntity字段不一致但是肯定也是一定的统一形式,不可能每个接口返回数据都不一样。总要有请求成功与否(类似success),提示信息(类似msg),如果有请求数据(泛型 data)?如果每个接口返回数据差异都很大是没有办法做统一处理的,可能得和后台协商一下

yueye410 commented 4 years ago

能加你微信或QQ吗,或者你加我 QQ:105398540 微信:18862486210

yueye410 commented 4 years ago

我让后台统一了接口格式,但现在问题是,baseentity里面,跟result同级的,还有个对象,是每个接口都有的,也是必用的,怎么办呢?

AriesHoo commented 4 years ago

那你把BaseEntity增加一个字段即可嘛,只要是格式都统一的就好处理的

yueye410 commented 4 years ago

我看你返回值是result.result哎,范型里面的那个entity,不是返回的baseentity,咋弄啊,头疼。🤦‍♂️

AriesHoo commented 4 years ago

你可以这样你的BaseEntiy 为

Object obj--这里的是你们额外对象 BaseEntity base--这里的BaseEntity为我demo里的样式 ---其实可以将这个类改名因为你们项目的BaseEntity不一样了 然后在BaseRepository 处理的就是 result.base.success 这样的。

AriesHoo commented 4 years ago

已发送QQ请求。如果还有问题可QQ咨询