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

Should I define one class for each REST JSON Request and Response?

在我的 android 应用程序中,我需要将 post JSON 数据传输到多个 REST API 并获取 JSON 数据以供解析。我想使用 GSON 来 serialize/deserialize 数据。

每个 REST API 都有不同的 input/output 字段,我是否应该像这样定义一个单独的 class 来保存每个 API 请求和响应的数据?

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

我问这个,因为如果我使用 python 来构造 JSON 请求,我不需要定义 classes,字典就可以了。

我相信你应该通过设计(虽然我最终会尽可能地重新使用它们)。这保证您不会向服务器发送不必要的数据。

如果你真的很担心数据消耗,我建议你:

  • 不向服务器发送 null 个值(只是检查它们是否到达 null);
  • 对响应中的错误使用 integers,而不是 booleanstring
  • 刷新一些数据时只发送新的东西(保存一些 "data version" 的 checksum/timestamp 并检查它)
  • ...

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

我创建了一个基础 class,它具有 post 和 get 的所有功能,然后我继承了 class 并覆盖了 class 的集合部分.每个请求的一部分是身份验证、请求类型和请求正文。每个响应的一部分是响应类型、权限级别和数据。数据成为大多数继承 classes 上的集合。这适用于两端的序列化和反序列化,并且使用基础 class 可将代码维护降至最低。

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