![]() |
1
2
这是一个体系结构决策,您应该基于系统的大小和复杂性。您的系统越大/越复杂,越有可能受益于不断增加的分离/封装级别(例如,您可能会发现BankService需要比CurrencyService更积极地扩展,单独运行这些服务将允许您这样做)。 不过,在回答你的问题时,我要指出的是,你应该考虑 高速缓存 这些服务调用并重用结果的结果,而不是为每个页面加载重新调用服务。如果(顾名思义)currencyservice和bankservice的结果不太可能经常更改,您可以一次将它们缓存几分钟或几小时,而不必重复进行这些调用。 如果您的应用程序很忙(即,如果您认为是每秒点击数而不是每小时点击数),那么这可以在运行时为您节省内存,因为单个服务调用的结果在多个页面请求之间共享(而不是需要单独获取结果集的每个页面)。 |
![]() |
2
2
这是正常的,是不可避免的… …除非您创建一个特定的服务,该服务在一次运行中返回特定屏幕的所有数据。 这是REST方法的缺点之一——基本上,如果您处理对象查询,并且需要X对象的列表,那么就需要X调用。点。 这意味着其余的设计在这个层次上的可伸缩性有限。 同样,在一开始,您可以让一个特定的服务在一次调用中返回复杂表单上所需的所有数据。 |
![]() |
3
1
等等,剩下的就是表示资源。 我认为你不应该对以下内容过于严格:
您在浏览器中表示的资源是一个“表单”并包含所有相关信息,这应该是非常好的。 在定义URL结构时,只需考虑正确的抽象程度。 |
![]() |
4
0
斯拉夫, 不需要为不同的资源提供不同的服务。一般来说,您只需提供帮助客户实现其目标的视图。如果其中一个观点是综合的“大”观点(资源),包括所有的银行和货币,那就好了。您仍然可以为创作和编辑银行和货币提供细粒度视图(资源)。 如果银行和货币恰好是由不同的Web应用程序提供的,并且您需要客户机来解析这些引用,那么请记住,HTML页面总是使用内联图像来完成这些操作。在这种情况下,缓存可以大大减少网络调用的数量(银行和货币的列表似乎不太稳定)。 (见 http://www.nordsc.com/blog/?p=152 ) 例子:
对banklist和currencylist的子请求大多数时候都应该从客户机的私有缓存中提供。 简 |
![]() |
user755806 · 从Rest服务返回JSON响应? 7 年前 |