REST与更复杂的数据请求

REST与更复杂的数据请求,rest,Rest,RESTAPI对于get-one、get-a-list等非常有用 但是我们的前端有一个仪表板,仪表板的一部分是更复杂的。它需要一个聚合/连接多个不同资源的查询 返回数据不是问题。但是,返回这些数据的端点的分类如何呢?由于数据不是资源,URL应该是什么样子?对于REST原则来说,返回的数据是否“聚合/连接了多个不同的资源”并不重要。它是底层数据存储的实现细节。如果仪表板使用联接、多个查询,则它不应该关心该存储的具体实现方式 仪表板上显示的任何内容(单个项目或项目列表)仍然可以视为资源 示例:想象一

RESTAPI对于get-one、get-a-list等非常有用

但是我们的前端有一个仪表板,仪表板的一部分是更复杂的。它需要一个聚合/连接多个不同资源的查询


返回数据不是问题。但是,返回这些数据的端点的分类如何呢?由于数据不是资源,URL应该是什么样子?

对于REST原则来说,返回的数据是否“聚合/连接了多个不同的资源”并不重要。它是底层数据存储的实现细节。如果仪表板使用联接、多个查询,则它不应该关心该存储的具体实现方式

仪表板上显示的任何内容(单个项目或项目列表)仍然可以视为资源


示例:想象一下当仪表板显示来自多个门户(Facebook、Linkedin等)的聚合用户配置文件时的用例。您可能仍然拥有REST资源/user/id,即使获取单个资源需要许多复杂的操作。

这是一个好消息。对于我们假设的仪表板项目,您能分享一下POST、补丁和DELETE可以做什么吗?此外,当我用GET传递一个ID时,该ID指的是什么?我唯一能想到的就是执行查询所需的连接部分。如果没有领域知识,很难给出示例。也许在您的情况下,使用单一仪表板资源没有意义?仪表板可能会显示几个单独的项目(每个项目都有单独的ID和生命周期)?在这种情况下,您可以使用多个资源做得更好-每个项目一个。对于一些用例,REST不适合,因为另一个需要仔细考虑资源究竟是什么。在这种情况下,可能仪表板项不是单个资源,或者根本不是资源(因为您很难找到每个项的id)。