Rest 休息服务-当月至今的计算

Rest 休息服务-当月至今的计算,rest,Rest,我是REST服务新手,如果这是一个明显的问题,我很抱歉 在我的系统中,我有一个Staff对象和一个Fee对象。工作人员向客户收取完成某一工作单元的费用。每个员工都可以收取许多相关费用 通常的CRUD方法可通过以下方式获得: mydomain.com/Staff mydomain.com/Fee 业务部门需要显示给定员工的周到日期、月到日期和年到日期的费用总额 如果这是一个SOAP服务,那么我可能会创建一个类似于GetToDateTotals(staff)的方法,该方法将计算并返回所有数字。不

我是REST服务新手,如果这是一个明显的问题,我很抱歉

在我的系统中,我有一个
Staff
对象和一个
Fee
对象。工作人员向客户收取完成某一工作单元的费用。每个员工都可以收取许多相关费用

通常的CRUD方法可通过以下方式获得:

  • mydomain.com/Staff
  • mydomain.com/Fee
业务部门需要显示给定员工的周到日期、月到日期和年到日期的费用总额

如果这是一个SOAP服务,那么我可能会创建一个类似于
GetToDateTotals(staff)
的方法,该方法将计算并返回所有数字。不过,我不知道REST服务中的逻辑应该放在哪里

我知道我可以在客户端通过
GET
ting所有适当的费用并进行计算来做到这一点,但我认为这种方法有两个缺点:

  • 可能会有数千个呼叫该服务,以单独获得所有费用
  • 该逻辑位于客户端,因此如果3个客户端使用该服务,该逻辑将被复制3次

  • 另一个可能的解决方案是使用
    mydomain.com/Staff/FeesToDate
    或类似的东西,但这似乎不适合REST体系结构风格。

    我将使用以下REST接口:

    GET mydomain.com/staff/<staffId>/fees  //returns paginated list of fees of a staff
    GET mydomain.com/staff/<staffId>/fees/summary  //returns week-to-date, month-to-date, and year to-date 
    
    GET mydomain.com/staff//fees//返回员工费用的分页列表
    GET mydomain.com/staff//fees/summary//返回截至日期的周数、截至日期的月数和截至日期的年数
    
    您可以选择使用查询参数仅返回一种类型的摘要:

    GET mydomain.com/staff/<staffId>/fees/summary?type=month-to-date
    
    GET mydomain.com/staff//fees/summary?type=month-to-date
    
    你在计算客户方的金额时是对的,在进行计算之前,你必须打很多电话才能获得所有费用,这是不可取的。最好在服务器端执行计算,这样就可以进行缓存