【发布时间】:2018-07-10 01:26:22
【问题描述】:
我在我的android 项目中使用retrofit2 和RxJava(不是RxJava2)。我有一个接受类型参数的端点。
@GET("api/v1/accounts/{account_type}")
Observable<ResponseAccountDetails> getAccountDetails(
@Path("account_type") String accountType);
响应中的字段会根据帐户类型而变化,但数据保持不变。例如,
当account_type = "free_account"时,POJO为
public class ResponseAccountDetails implements Serializable {
@SerializedName("free_account")
@Expose
private List<Account> account = null;
public List<Account> getAccount() {
return account;
}}
当account_type = "paid_account"时,POJO为
public class ResponseAccountDetails implements Serializable {
@SerializedName("paid_account")
@Expose
private List<Account> account = null;
public List<Account> getAccount() {
return account;
}}
我知道的一种方法,也是更简单的一种方法是为每种类型设置不同的端点和不同的 POJO。
有没有更好更聪明的方法?只有一个端点可以根据提供的参数(account_type)动态更改响应(基本上)。 还有比我上面提到的更好的解决方案吗?
我希望我的问题很清楚。提前致谢。
【问题讨论】:
标签: android rest retrofit rx-java retrofit2