代码之家  ›  专栏  ›  技术社区  ›  Defozo

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

  •  1
  • Defozo  · 技术社区  · 8 年前

    当我想检索最后一个时,查询应该是什么样子 measurements installations 没有删除?

    像这样的?

    /my-web-service/installations/measurements/last?removed=false
    

    问题是,我不想找回最后一个 测量 未从中删除的 . 我想找回最后一个 测量 从…起 安装 没有删除。

    2 回复  |  直到 8 年前
        1
  •  1
  •   Opal    8 年前

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

    1. 如果需要从端点读取数据 交易上 ,你设计它的方式就是前进的方向。我要更改的是参数的名称 removed installationRemoved 因为它更具描述性,并将端点缩短为 /my-web-service/measurements/ -自 installations 目前尚不清楚客户的经营范围。还有,你不需要吗 since 参数以过滤 最后的 测量?

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

      • /my-web-service/installations/?removed=false
      • /my-web-service/measurements/?since=timestamp&installations=<array>

      它不会让它变得更好(当它变得更好或更糟时),但对用户来说更容易和更具预测性。

    一般来说,尝试添加更多具有过滤选项的通用端点,而不是高度专用的端点——做一件特定的事情。这种方式导致了难以使用、松散的API。此外,在 filtering .

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

        2
  •  1
  •   Héctor    8 年前

    根据 this best practices article ,您可以使用“常见查询的别名”:

    为了让普通消费者更愉快地体验API, 考虑将一组条件打包成易于访问的 宁静的道路。例如,上面最近关闭的票据查询

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

    /my-web-service/installations/non_removed/measurements/last
    

    哪里 non_removed 将是查询未删除的安装的别名。

    希望有帮助!