REST 服务 - 月初至今的计算

标签 rest

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

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

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

  • mydomain.com/Staff
  • mydomain.com/Fee

业务需要显示给定员工的周至今、月至今和年初至今的费用总额。

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

我知道我可以在客户端通过 GET 单独计算所有适当的费用并进行计算,但我发现这种方法有 2 个缺点:

  1. 可能会调用该服务以单独获取所有费用
  2. 逻辑在客户端,所以如果 3 个客户端使用该服务,则逻辑重复 3 次

另一种可能的解决方案是使用 mydomain.com/Staff/FeesToDate 或类似的东西,但这似乎不符合 REST 架构风格。

最佳答案

我会有以下 REST 接口(interface):

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/<staffId>/fees/summary?type=month-to-date

关于在客户端计算总和,您是正确的,在计算之前您将不得不多次调用以获取所有费用,这是不可取的。最好在服务器端执行计算,这样您就可以进行缓存。

关于REST 服务 - 月初至今的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23232021/

相关文章:

rest - 尝试在HBase REST API中查找基于列值的过滤

python - Django 休息框架保存缩略图

java - 有没有开源工具可以将 postman 集合转换为客户端 sdk?

api - Joomla 3.0 的 REST API

java - 如何使用 postman 休息客户端发送对象来调用 REST 服务,以便它将使用正确的方法参数命中下面给定的方法?

javascript - Backbone.js 集合获取,无法检索项目

php - file_get_contents() : SSL operation failed with code 1, 无法启用加密

json - 关于 ember cli 如何获取 JSON 响应的体面教程

javascript - 前端应用程序的 Angular 路由

java - 泽西客户端 : Adding Cookies to Request