我应该为每个REST JSON请求和响应定义一个类吗?

时间:2015-01-31 15:21:34

标签: android json rest web gson

在我的Android应用程序中,我需要将JSON数据发布到多个REST API并获取JSON数据以进行解析。我想使用GSON来序列化/反序列化数据。

每个REST API都有不同的输入/输出字段,我应该定义一个单独的类来保存每个API请求和响应的数据吗?

public class API1RequestData{
  public String field1;
  public String field2;
}

我问这个,因为如果我使用python来构造JSON请求,我不需要定义类,字典会这样做。

2 个答案:

答案 0 :(得分:2)

我相信你应该按照设计(尽管我最终会重新使用它们)。这可以保证您不会向服务器发送不必要的数据。

如果您真的担心数据消费,我建议您:

  • 不要向服务器发送null值(只检查它们是否到达null);
  • 使用integers代替响应中的错误,而不是booleanstring
  • 刷新一些数据时只发送新内容(保存“数据版本”的一些校验和/时间戳并检查)
  • ...

这完全取决于您的应用程序需求。有时候不值得添加一些设计模式,这些设计模式会减慢开发速度以换取任何东西

答案 1 :(得分:2)

我创建了一个具有post和get的所有函数的基类,然后我继承了该类并覆盖了类的集合部分。每个请求的一部分是身份验证,请求类型和请求正文。每个响应的一部分是响应类型,权限级别和数据。数据成为大多数继承类的集合。这适用于两端的序列化和反序列化,并且使用基类可以将代码维护保持在最低限度。

我有其他项目因为各种原因我做了不同的事情。无论什么作品都是好的。如果你有相同结构的请求,但名称是不同的,那么只需创建一个类并依赖上下文来了解它是什么。如果请求的结构不同,请使用不同的类。