Java Rest API - 返回帐户余额的方法[关闭]

Posted

技术标签:

【中文标题】Java Rest API - 返回帐户余额的方法[关闭]【英文标题】:Java Rest API - Method to return balance on account [closed] 【发布时间】:2022-01-16 22:47:19 【问题描述】:

我需要获取特定客户 ID 和帐户 ID 的余额。

我有这两个 java 类。 (这两个类都有自己的 get 和 set 方法)

客户

public class Customer 
private int custid;
private String name;
private String address;
private String email;
private int pin;
private List<Account> accounts = new ArrayList<>();


public Customer() 


public Customer(int custid,String name, String address, String email, int pin, List<Account> accounts) 
    this.custid = custid;
    this.name = name;
    this.address = address;
    this.email = email;
    this.pin = pin;
    this.accounts = accounts;

帐户

public class Account 
private int accid;
private int sortCode;
private int accNumber;
private String accType;
private double currentBalance;   
private List<Transaction> transactions = new ArrayList<>();

public Account()


public Account(int accid,int sortCode, int accNumber, String accType, double currentBalance, List<Transaction> transactions) 
    this.accid = accid;
    this.sortCode = sortCode;
    this.accNumber = accNumber;
    this.accType = accType;
    this.currentBalance = currentBalance;
    this.transactions = transactions;


我有这两个客户服务和帐户服务类。 这是 CustomerService 和 Account Service 中的一个方法

客户服务

public Customer getCustomer(int id) 
    return cList.get(id-1);

帐户服务

public Account getAccount(int accid) 
    return aList.get(accid-1);

我需要像这样在我的 get 请求中使用两个参数。我在一个单独的班级中有以下内容。

@GET
@Path("/customerID/accountID")
@Produces(MediaType.APPLICATION_JSON)
public Customer getBalance(@PathParam("customerID") int cID,@PathParam("accountID") int aID ) 
    //gets customer for CustomerServices and returns it
return customerService.getCustomer(cID);

如何退回给定客户 id 及其帐户 id 的余额?

【问题讨论】:

查看 DTO。您可以在回复中发回任何内容。根据 cID 和 accentID,您可以创建一个包含客户详细信息和帐户余额的自定义响应对象。另一种方法是将客户映射添加到 Account 实体中 - 这将为您提供基于 cID 和 accountID 的 Accountz+Customer 对象,但不确定这是否适合您的业务逻辑 我有 //Get specific customer from customers using id Customer c = customerService.getCustomer(cid); //Get a list of the accounts on that customer List&lt;Account&gt; accounts = c.getAccounts(); //Return the specific account from the array of accounts return accounts.get(aid-1); 返回帐户,但我只想返回余额。我该如何反映? 这就是 DTO 的用武之地。为例如创建一个类CustomerResponse 包含 Customer 类的所有字段和余额的附加字段。传入所有值并返回该 DTO(自定义类)。但是,如果您将客户映射添加到 Account 类中,那么您将获得特定的帐户 Account acc = repo.getAccount(aid) 并且 acc.getCustomer() 将为您提供客户。 【参考方案1】:
@GET
@Path("/customerID/accountID")
@Produces(MediaType.TEXT_PLAIN)
public String getBalance(@PathParam("customerID") int cid, @PathParam("accountID") int aid) 
    //Get specific customer from customers using id
    Customer c = customerService.getCustomer(cid);
    //Get a list of the accounts on that customer
    List<Account> accounts = c.getAccounts();
    Account a = accounts.get(aid - 1);

    Double newBalance = a.getCurrentBalance();
    return "Balance for Customer ID " + cid + " with account ID " + aid + " is " + newBalance;


如果有人在看这篇文章并需要类似的东西,这就是我的回答。

【讨论】:

以上是关于Java Rest API - 返回帐户余额的方法[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

REST API 设计 - 提现余额动作

JAVA编写模拟ATM机进行帐户余额查询 实现存款和取款业务(使用带参数的方法)

贝宝沙盒帐户

REST API包含两个字段

在 java rest api 上返回自定义状态和代码

Salesforce REST API 和 DELETE 方法