【问题标题】:How to create custom REST API endpoint correctly [closed]如何正确创建自定义 REST API 端点 [关闭]
【发布时间】:2019-03-27 19:29:37
【问题描述】:

假设我们有客户:/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

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

【问题讨论】:

  • 即使您已经找到了解决方案,我还是想澄清一下,URI 的拼写与 REST 架构系统无关。客户端不应解释 URI,而应仅使用服务器提供的 URI。客户端将根据随附的链接关系名称和总结内容的文本来确定是否调用此类 URI。因此,接受的答案具有误导性,因为它指出/api/customers/spent-more 是正确的解决方案,而实际上没有对错。由于吸引了自以为是的答案,这个问题应该已经关闭

标签: rest api endpoint


【解决方案1】:

正确的端点是:

  1. /api/customers/spent-more

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

理论上,你可以使用:

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

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

【讨论】:

    【解决方案2】:

    提供排序和限制作为参数

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

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

    【讨论】:

      猜你喜欢
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2016-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多