如何设计一个查询,从我想要以RESTful方式应用过滤器的资源中检索最后的数据?

如何设计一个查询,从我想要以RESTful方式应用过滤器的资源中检索最后的数据?,rest,api,http,design-patterns,Rest,Api,Http,Design Patterns,当我想从安装中检索上次未删除的测量值时,查询应该是什么样子 像这样的 /my-web-service/installations/measurements/last?removed=false 问题是,我不想检索上次未从安装中删除的测量值。我想从未删除的安装中检索上次测量值。根据,您可以使用“常用查询别名”: 为了让普通消费者体验到更愉悦的API体验, 考虑将一组条件打包成易于访问的条件 宁静的道路。例如,上面的最近关闭的票证查询 可以打包为GET/tickets/recently\u clo

当我想从
安装
中检索上次未删除的
测量值
时,查询应该是什么样子

像这样的

/my-web-service/installations/measurements/last?removed=false
问题是,我不想检索上次未从
安装中删除的
测量值。我想从未删除的
安装中检索上次
测量值

根据,您可以使用“常用查询别名”:

为了让普通消费者体验到更愉悦的API体验, 考虑将一组条件打包成易于访问的条件 宁静的道路。例如,上面的最近关闭的票证查询 可以打包为GET/tickets/recently\u closed

因此,在您的情况下,可能是:

/my-web-service/installations/non_removed/measurements/last
其中
non_removed
将是查询未删除的安装的别名


希望有帮助

我在这里看到了一些可能性:

  • 如果您需要以事务方式从端点读取数据,那么您的设计方式就是最佳选择。我要更改的是参数的名称,从
    removed
    改为
    installationRemoved
    ,因为它更具描述性,并将端点缩短为
    /myweb service/measures/
    ——因为
    安装
    不清楚客户端在哪个范围内操作。另外,您不需要
    since
    param来过滤最后的测量值吗

  • 如果有机会分割我要添加的两个端点:

    • /my web service/installations/?removed=false
    • /my web service/measurements/?since=时间戳和安装=


      最后请注意,如果您的客户不是因为必须使用API,而是在他们喜欢的时候使用API,那么您的API是好的;)

      安装和测量之间的关系是什么?一个安装可以有多个测量值。这里我想从所有安装中检索所有最后的测量值(未删除)。首先,它不应该是
      测量值吗?因为=
      ,而不是
      测量值/?因为=
      ?第二件事是,如果我的url中有一个数组的形式是
      &installations=[1,2,3]
      &installation=1&installation=2&installation=3
      ?@defoo,它肯定应该以斜杠结尾,永远;)对于后者,这取决于您的技术堆栈(实现起来要求不是很高)和众所周知的标准——因此似乎应该是:
      installation=1&installation=2&installation=3
      当谈到如何在HTTP查询参数中处理数组时。@defoo,这取决于您;)我总是以斜杠结束端点。我删除了我的评论,因为我在这里找到了你的答案:你在结尾不使用斜杠,并且认为你只是在开玩笑:D