是否有适用于Android的最佳使用API客户端模式?

拉夫

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

通常我:

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

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

阿维纳什R

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

有关某些推荐的设计模式,请参阅:Google I / O 2010-Android REST客户端应用程序

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

例如,在改造中很容易:

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中,序列化是分离的,应通过模块插入)。

有官方的例子/教程凌空这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

适用于Android的API客户端

来自分类Dev

是否有适用于XMPP客户端的Android本机库?

来自分类Dev

“适用于GAE渠道的Java客户端”是否可与Android和iOS的libgdx一起使用?

来自分类Dev

使用适用于Android的Youtube的Google API Java客户端从Android服务访问YouTube数据

来自分类Dev

是否有适用于z / OS的GIT客户端?

来自分类Dev

是否有适用于Ubuntu和替代产品的良好播客客户端?

来自分类Dev

适用于Android的其余客户端日志记录

来自分类Dev

适用于Android的Socket.io客户端

来自分类Dev

生成Python客户端库-适用于Android

来自分类Dev

使用适用于 Python 的 BigQuery API 客户端库时无法访问网络

来自分类Dev

适用于 Ubuntu 的最佳免费 Git GUI 客户端

来自分类Dev

客户端表单验证不适用于MVC中的模式对话框

来自分类Dev

适用于声明模式xRM的Apache CXF客户端(Microsoft Dynamics CRM 2011)?

来自分类Dev

需要帮助,使用适用于PHP的Google API客户端库创建QPX Express请求

来自分类Dev

使用适用于Python的Google API客户端库连接到Google Analytics(分析)时,发生SSLHandshakeError

来自分类Dev

适用于Windows Phone 8.1的Google Api任务客户端库

来自分类Dev

适用于多个客户端的Google Analytics(分析)API配额

来自分类Dev

适用于PHP的Google API客户端中的required_once问题

来自分类Dev

客户端ID身份验证不再适用于Kafka API

来自分类Dev

适用于react项目,Javascript或Node-js的Google API客户端库?

来自分类Dev

Instagram API调用不适用于客户端ID

来自分类Dev

Google云存储客户端API不适用于补丁

来自分类Dev

适用于Web和移动客户端的Spring REST API

来自分类Dev

适用于安全Hbase的Java客户端

来自分类Dev

适用于iOS的Elasticsearch客户端

来自分类Dev

适用于Ubuntu的CalDAV客户端

来自分类Dev

适用于IBM MQ的.Net AMQP客户端

来自分类Dev

适用于iOS的GraphQL客户端库

来自分类Dev

适用于Linux的VMware ESXi客户端吗?

Related 相关文章

  1. 1

    适用于Android的API客户端

  2. 2

    是否有适用于XMPP客户端的Android本机库?

  3. 3

    “适用于GAE渠道的Java客户端”是否可与Android和iOS的libgdx一起使用?

  4. 4

    使用适用于Android的Youtube的Google API Java客户端从Android服务访问YouTube数据

  5. 5

    是否有适用于z / OS的GIT客户端?

  6. 6

    是否有适用于Ubuntu和替代产品的良好播客客户端?

  7. 7

    适用于Android的其余客户端日志记录

  8. 8

    适用于Android的Socket.io客户端

  9. 9

    生成Python客户端库-适用于Android

  10. 10

    使用适用于 Python 的 BigQuery API 客户端库时无法访问网络

  11. 11

    适用于 Ubuntu 的最佳免费 Git GUI 客户端

  12. 12

    客户端表单验证不适用于MVC中的模式对话框

  13. 13

    适用于声明模式xRM的Apache CXF客户端(Microsoft Dynamics CRM 2011)?

  14. 14

    需要帮助,使用适用于PHP的Google API客户端库创建QPX Express请求

  15. 15

    使用适用于Python的Google API客户端库连接到Google Analytics(分析)时,发生SSLHandshakeError

  16. 16

    适用于Windows Phone 8.1的Google Api任务客户端库

  17. 17

    适用于多个客户端的Google Analytics(分析)API配额

  18. 18

    适用于PHP的Google API客户端中的required_once问题

  19. 19

    客户端ID身份验证不再适用于Kafka API

  20. 20

    适用于react项目,Javascript或Node-js的Google API客户端库?

  21. 21

    Instagram API调用不适用于客户端ID

  22. 22

    Google云存储客户端API不适用于补丁

  23. 23

    适用于Web和移动客户端的Spring REST API

  24. 24

    适用于安全Hbase的Java客户端

  25. 25

    适用于iOS的Elasticsearch客户端

  26. 26

    适用于Ubuntu的CalDAV客户端

  27. 27

    适用于IBM MQ的.Net AMQP客户端

  28. 28

    适用于iOS的GraphQL客户端库

  29. 29

    适用于Linux的VMware ESXi客户端吗?

热门标签

归档