繁体   English   中英

从REST API构建复杂页面

[英]Building complex pages from a REST API

我正在使用具有PHP Rest API后端和Angular JS前端的应用程序。 我想全力以赴的是使用来自多个模型的数据渲染页面的最佳实践。 例如,如果您正在显示“人员”资源的详细信息页面,则很容易获得与该人员相关的所有数据。 但是,如果您还需要有一个侧边栏,以显示与此人相关的已上传文档数以及已为该人创建的注释数,您将如何处理? 在更传统的应用程序中,您可以将所有相关数据收集到控制器中,然后将其注入视图中以返回,但是与RESTful方法相反,该方法返回描述人员和外围设备的数据同一调用中的文档和便笺计数之类的数据? 是否应该将它们设置为多个api调用以从数据库中获取不同的数据对象? 在考虑后一种选择时,可以接受对一个API进行多少次单独调用以构建一个单一视图?

冷漠的事实是,无论数据到达客户端的方式是否为“ RESTful”,客户端都需要具有数据来显示它。 我非常喜欢99.9999999%的情况下的“ RESTful”方法,但是还发现了一些不太合适的方法。 在这种情况下,我认为确实合适。

您所描述的听起来像可以通过在该人的实际模型中存储与该人有关的文档,注释,注释,小部件等的总数并根据需要进行更新来实现。 无论如何,这取决于项目的规模。 这样,一个请求就可以收集所有这些信息,并且不会感到尴尬,并且还可以节省您在客户端的大量工作。

替代方法是执行一些$ watching或其他事件驱动的请求,以获取每种资源类型的列表,这...如果您只是想计数,大多数时候效率会降低。

我在构建第一个Angular应用程序时遇到了同样的问题。 RESTful方法不是“一刀切”的建筑风格……通常需要一些偏差才能达到最终结果。 使用Angular可以使您轻松地将这些操作分离到其自己的控制器和服务提供者中,从而在这方面实现关注点分离。

如果最终用户可以彼此独立创建注释并上载文档,那么我会将其保留为单独的资源。 如果不是这样,那么一个电话就不是一件坏事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM