Retrofit

看一个Retrofit的例子

  • 第一步:将Rest API转换为java接口
    public interface GitHubService {
    @GET("users/{user}/repos")
    Call<List<Repo>> listRepos(@Path("user") String user);
    // you can add some other meathod
    }

    解释:
  • 这里的Rest API是指服务器端的API,一般会暴露get,post方法
  • GitHubService其实是对Rest API的一个映射关系,在实际开发中,我们可以定义:public interface ClientService,里面包含post ,get 方法。
  • 接口中的方法使用了Retrofit的注解,Retrofit这个库给了我们很多注解,下一节详细介绍
  • listRepos这个方法表示:一个get请求获取给定URL的Repo集合。
  • listRepos传入的参数为我们需要get的url的动态部分。
  • 这里的Repo为我们自己定义的java bean的类:Repo.class用于封装获取的Jason数据。//注意:此处Retrofit又帮我们省掉了很多工作,只需要我们自己定义业务对应的实体类,而Jason数据的转换和封装则帮我们封装好了只需我们调用。

  • 第二步Retrofit会帮我们自动生成接口的实现类的实例,代码如下:

    Retrofit retrofit = new Retrofit.Builder()  //01:获取Retrofit对象
    .baseUrl("https://api.github.com/") //02采用链式结构绑定Base url
    .build();//03执行操作
    GitHubService service = retrofit.create(GitHubService.class);//04获取API接口的实现类的实例对象

解释:

  • 短短的两行代码解决了很多问题
  • 先获取Retrofit对象并绑定基本参数,设置基本配置
  • 一行代码生成API接口的实例对象

  • 第三步:调用接口中定义的业务方法:get post等:

    Call<List<Repo>> repos = service.listRepos("octocat");

    解释:
  • 调用接口实现类实例的方法,获取服务器上的数据解析存在List<Repo>中。

小结:Retrofit的使用大体上就分这三步走,接下来就是在开发中去熟悉Retrofit的各种注解了。

posted @ 2017-06-06 11:19  xybxj  阅读(113)  评论(0)    收藏  举报