Apt实践:Retrofit2.0 + 非Restful API + Apt Converter

这个题目看起来很有档次!有木有大笑,好吧,先来一波词解释

(以下解释,多为百度,稍微有一点自己的理解,看客可以选择性跳过)


Retrofit2.0 :和Java领域的ORM概念类似, ORM把结构化数据转换为Java对象,而Retrofit 把REST API返回的数据转化为Java对象方便操作。同时还封装了网络代码的调用。以下为个人理解:retrofit 这个玩意吧,首先是个用来进行网络请求,然后,retrofit内部是希望完成发起请求到生成bean的过程。最后,配合RxJava口味更加。这里提一句,如果没有使用RxJava,咱项目还使用Okhttp吧,没必要自己为难自己。


非Restful API :这里没百度到。还是举个粟子吧,糖炒的,拿这次的接口来说,请求城市列表,我所需要的正确的数据

[
    {
      "cityid": "1",
      "parentid": "0",
      "citycode": "101010100",
      "city": "北京"
    },
    {
      "cityid": "24",
      "parentid": "0",
      "citycode": "101020100",
      "city": "上海"
    }
]

以上是Reetful APT ,但是我们现在大部分用到的数据是:
{
  "status": "0",
  "msg": "ok",
  "result": 
  [
    {
      "cityid": "1",
      "parentid": "0",
      "citycode": "101010100",
      "city": "北京"
    },
    {
      "cityid": "24",
      "parentid": "0",
      "citycode": "101020100",
      "city": "上海"
    }
  ]
}

这样数据,加入了statust状态与msg ,这样可以方便让我们做一些事情,哪一些事情?反正不是嘿嘿的事情,理论上,开始跟后台商(p)量(y)好,后台给你反的数据应该是保持这样的

{
  "status": "0",
  "msg": "ok",
  "result": "主要数据"
}
这种便是非Restful API的基本情况


Apt: APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的Annotation,使用Annotation进行额外的处理。 Annotation处理器在处理Annotation时可以根据源文件中的Annotation生成额外的源文件和其它的文件(文件具体内容由Annotation处理器的编写者决定),APT还会编译生成的源文件和原来的源文件,将它们一起生成class文件。

随着Android Gradle 插件 2.2 版本的发布,Android Gradle 插件提供了名为 annotationProcessor 的功能来完全代替 android-apt ,自此android-apt 作者在官网发表声明证实了

后续将不会继续维护 android-apt ,并推荐大家使用 Android 官方插件annotationProcessor.
Apt 个人理解,本人也是第一次接触Apt,本次也算试手,apt 对于我来说,就是用注释生成一些脑残代码。所谓脑残,就是一些有规律的代码。比如通过Swtich 语句返回不同的Converter,这个往下看就能看到了


Converter :英文为转换器,在retrofit的使用中,Converter的作用,就是将返回的数据,进行解析,生成你想要的数据。Converter的实体化是是通过工厂模式,本人常用GsonResponseBodyConverter为官方提供,but,这个Converter只是用来Restful能用。。。也就是说,基本是没有什么项目会使用,二次but,本人的Converter的基本是模仿官方,还是有用的~~


-----------------------------------------以下是重点----------------------------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值