【问题标题】:rest Http verb best practice for querying datarest 查询数据的 Http 动词最佳实践
【发布时间】:2017-10-23 07:22:36
【问题描述】:

我已经阅读了使用 REST 中的方法作为对资源执行操作的指标的最佳实践。假设我有 5 个操作,我正在使用以下资源和方法:

Resource /customer- POST- CreateCustomer
DELETE-delete customer
PUT-update customer

现在我还有 2 个查询操作:findCustomerqueryCustomer。 我只能对其中一个使用 GET 方法。处理这种情况的最佳做法是什么,因为传递显式 HTTP 标头或额外的查询字符串来识别 1 个异常操作似乎不是一个好的选择!

【问题讨论】:

  • findCustomer 和 queryCustomer 的区别是什么?
  • 功能类似于 findCustomer 输入将是移动/电子邮件,其中可以返回多个客户,而在 queryCustomer 输入将是 partyid,它将仅响应指定客户 ID 的详细信息

标签: rest api http


【解决方案1】:

我还有 2 个查询操作:findCustomerqueryCustomer。我只能对其中一个使用GET 方法。

GET 方法适用于这两种操作,但是您必须使用不同的 URI。

使用以下内容检索客户集合的表示(您定义为查询的操作):

GET /customers

可以使用查询参数过滤集合。

并使用以下内容检索单个客户的表示(您定义为 find 的操作):

GET /customers/{id}

{id} 是您客户的唯一标识符。


相关:请参阅此answer,了解在每种情况下可以返回哪些状态代码。

【讨论】:

  • 如果我使用 /customers/{id} 那么 id 将成为路径(资源)参数并适用于所有 HTTP 动词,不是吗?
  • @darshankamat 这取决于您的实施。大多数框架允许您定义给定端点可以处理哪些方法。
猜你喜欢
  • 1970-01-01
  • 2016-07-23
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 2013-10-23
相关资源
最近更新 更多