如何在RESTful api中使用GET基于不同条件检索资源?

时间:2014-05-27 15:30:18

标签: http rest web get

根据REST框架,我们可以使用GET方法访问资源,如果我知道关键资源,这很好。例如,为了获得事务,如果我通过transaction_id,那么我可以获得该事务的资源。但是当我想访问两个日期之间的所有事务时,我应该如何使用GET编写我的REST方法。

获取transaction_id的交易:GET / transaction / id 为了获得两个日期之间的交易???

此外,如果还有其他条件,我需要像最新的10笔交易,最旧的10笔交易那样,那么我应该如何编写我的网址,这是REST中的主要关键。

我试图查看谷歌,但无法找到完全RESTful的方式并解决我的疑问,所以在这里发布我的问题。我对POST和DELETE有清楚的了解,但是如果我想根据条件使用PUT对某些资源进行相同的更新,那么该怎么做呢?

1 个答案:

答案 0 :(得分:0)

REST中有集合和项目资源。

如果您想获得项目的表示,通常使用唯一标识符:

  • /books/123
  • /books/isbn:32t4gf3e45e67(不是有效的isbn)

template

  • `/书籍/ {ID}
  • /books/isbn:{isbn}

如果您希望获得集合或简化集合的表示,请使用集合的唯一标识符并向其添加一些过滤器:

  • /books/since:{fromDate}/to:{toDate}/
  • /books/?since="{fromDate}"&to="{toDate}"

过滤器可以进入路径或url的queryString部分。

在响应中,您应该添加与这些URL(也称为HATEOAS)的链接,REST客户端可以遵循这些链接。您应该使用链接关系(例如IANA link relations)来描述这些链接和链接数据,例如schema.org或描述表示中的数据。还有其他词汇,例如GoodRelations和ofc。你也可以为自己的应用编写自己的词汇。