用於接收從 Spring Boot 返回的資產數據類別。當發出請求期望獲得關於資產的資訊時,Spring Boot 會將數據以 JSON 格式返回,而可以使用 AssetsResponse 類別來將對應的 JSON 數據轉換為 Java 物件。
public class AssetsResponse {
@SerializedName("status")
private String status;
@SerializedName("message")
private String message;
@SerializedName("assetsDataList")
private List<AssetsData> assetsDataList;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<AssetsData> getAssetsDataList() {
return assetsDataList;
}
public void setAssetsDataList(List<AssetsData> assetsDataList) {
this.assetsDataList = assetsDataList;
}
}
用於表示每筆支出數據的詳細資訊。AssetsResponse 物件中的assetsDataList 屬性包含多個 AssetsData 物件,每個物件表示一筆支出記錄,可以使用 get 方法來訪問這些屬性。
public class AssetsData {
@SerializedName("id")
private Long id;
@SerializedName("assetsType")
private String assetsType;
@SerializedName("assetsName")
private String assetsName;
@SerializedName("assetsValue")
private int assetsValue;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getAssetsName() {
return assetsName;
}
public void setAssetsName(String assetsName) {
this.assetsName = assetsName;
}
public int getAssetsValue() {
return assetsValue;
}
public void setAssetsValue(int assetsValue) {
this.assetsValue = assetsValue;
}
public String getAssetsType() {
return assetsType;
}
public void setAssetsType(String assetsType) {
this.assetsType = assetsType;
}
}
用於定義你的 Android 和 Spring Boot 伺服器之間的 API 請求方法。這些方法都對應了不同的 API 端點:
public interface ApiService {
@GET("user/assets")
Observable<AssetsResponse> getAssetsData(@Query("date") String date);
@DELETE("user/assets")
Observable<StatusResponse> deleteAssetsData(@Query("id") Long id);
@POST("user/assets")
Observable<StatusResponse> insertAssets(@Body AssetsRequest assetsRequest);
}
這邊以讀取方法為示範:
@Override
public void loadAssetsData(String date) {
apiService.getAssetsData(date)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new Observer<AssetsResponse>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(AssetsResponse assetsResponse) {
presenter.showAssets(assetsResponse.getAssetsDataList());
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}