这个问题似乎是主观的,因为我不确定如何提出问题,以便得出客观的答案。是否存在用于在Android中创建REST API客户端的最佳使用设计模式?

通常我:

  • 将我所有的API方法放在一个静态APIClient类
  • 将手动序列化代码写入从API获得的每个模型中(主要是因为有时添加序列化库似乎更加复杂)。
  • 让 Activity 处理成功和错误响应。

  • 但是,我也看到了很多代码,每种类型的API调用都有不同的类,扩展了诸如AbstractAction和AbstractResponse之类的类。似乎很多人都有自己的非常不同的方式,这很奇怪,因为编写API客户端是编写应用程序时首先要做的事情之一。那么,有没有正确的方法,或者至少有更好的方法?

    最佳答案

    最好的模式是各种模式的组合。它取决于您应该执行的 Activity 类型。

    有关一些推荐的设计模式,请参见:Google I/O 2010 - Android REST client applications

    为了访问其余的API,已经有一些为此目的而设计的库(例如,改造,凌空等等),它们对网络访问和序列化进行了抽象化,由您自己进行,这似乎过头了,除非有特定的要求。这样做的理由。

    例如,在retrofit中,这很容易:

    API作为接口

    public interface GitHubService {
      @GET("/users/{user}/repos")
      List<Repo> listRepos(@Path("user") String user);
    }
    

    与适配器一起使用
    RestAdapter restAdapter = new RestAdapter.Builder()
          .setEndpoint("https://api.github.com")
          .build();
    
    GitHubService service = restAdapter.create(GitHubService.class);
    
    List<Repo> repos = service.listRepos("octocat");
    

    这样就完成了所有的序列化和反序列化(在2.0改造中,序列化已分离,应通过模块插入)。

    有关排球here的官方示例/教程

    08-28 01:00
    查看更多