这个问题可能看起来很主观,因为我不确定如何提出这个问题,以便得出客观答案。在Android中创建REST API客户端是否有最佳使用设计模式?
通常我:
但是我也看到很多代码为每种类型的API调用都有不同的类,扩展了类AbstractAction和AbstractResponse。看起来很多人都有自己的,非常不同的方式,这很奇怪,因为编写API客户端是编写应用程序时必须要做的第一件事。那么有没有正确的方法来做到这一点,或者至少是一种更好的方法呢?
答案 0 :(得分:3)
最佳模式是各种模式的组合。它受到你应该做的活动类型的影响。
对于某些推荐的设计模式,请参阅: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
的官方示例/教程