如何正确创建自定义REST API终结点

时间:2019-03-27 19:29:37

标签: rest api endpoint

假设我们有客户:/ api / customers(/ api / customers / {id})

具有以下内容:

[{
    name: "Mike",
    age: 20,
    amount: 300
},
{
    name: "John",
    age: 30,
    amount: 600
}]

但是当您必须执行各种数据操作时,有不同的任务。

假设我们需要显示花费最多的客户(在“金额”字段中)。

此请求的终结点应该是什么样?

我对如何执行此操作有一些建议,请纠正我:

1. /api/customers/spent-more

2. /api/customers-spent-more

3. /api/customers?action=spent-more

您如何执行类似的任务,分享经验

2 个答案:

答案 0 :(得分:1)

正确的端点是:

  
      
  1. / api / customers /花费更多
  2.   

然后,您可以将任何其他查询参数作为请求字符串的一部分传递。

理论上,您可以使用:

  
      
  1. / api / customers?action =花费更多
  2.   

,并在后端有一个开关,它根据发送的操作返回所需的数据,但是每种方法的优缺点取决于您的体系结构以及最终将执行多少操作。我会说传统的MVC架构将决定前者。

答案 1 :(得分:0)

提供排序和限制作为参数

/api/customers?sort_by=amount&limit=1&order=desc

响应是花费最多的一位客户。当然,该方法也可以用于其他用例。