architecture - RESTful API 排序困境

标签 architecture sorting rest

我按照以下原则实现了 REST API

例如/car/5 会给我 model:blabla , user_id: 1 然后如果您需要所有者,您将获得/user/1 来获取用户数据..

这样,在 DB 中就可以避免 JOINS 和其他东西。所有东西都在它们自己之间链接,并且在其余客户端部分互连数据 - 使事情变得简单,易于缓存/删除缓存、缩放等。

但是当你需要排序时会发生什么?

想象一下,我们在前端有一些 View 来显示以下数据:
汽车型号,用户名等...例如,您想按用户名排序。

您不能真正告诉/car/5 按用户名排序,因为它只知道用户 ID...

我看到的一个选项是从用户/user/list?sortby=username 排序,然后互连这些返回的 id 中的哪些实际上是指汽车。但这意味着我们需要获得所有用户..并且只使用那些看似致命的性能瓶颈的一小部分。

感谢您的任何指点

最佳答案

我认为您正试图避免出于所有错误的原因加入,因为采用这种方法,您将不得不处理更多的请求。

如果您取而代之的是带回您要显示的所有信息(即连接数据库端),那么客户端将不得不进行更少的查询,并且您可以进行排序而不必(懒惰)加载所有 child 对象。

另一种选择是将子对象作为子 XML 元素带回(以类似于 OpenStreetMap 的 RESTful 接口(interface)的工作方式)。您仍然有来自客户端的一次点击,您应该能够优化查询以最小化数据库上的负载。

关于architecture - RESTful API 排序困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3510418/

相关文章:

architecture - 用于培训嵌入式开发的 x86 模拟器

javascript - 如何在调用 response.end() 后执行 Node JS/connect 中间件?

r - 按每行中 NA 的数量对数据进行排序

c - 程序中的变量是否连续存储在内存中?

java - 一次查找数组 12 个元素的最大值

performance - 基数排序的最佳基础

java - 使用 Jackson 无法识别 @JsonCreator

java - 使用 REST Web 服务就修改情况与 2 个应用程序进行通信

json - Spring MVC REST 通过返回 JSON 处理错误的 URL (404)

architecture - 敏捷解决方案设计