Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
REST是GUI web应用程序的好选择吗?_Rest_Wicket_Web Frameworks - Fatal编程技术网

REST是GUI web应用程序的好选择吗?

REST是GUI web应用程序的好选择吗?,rest,wicket,web-frameworks,Rest,Wicket,Web Frameworks,基于GUI的web应用程序可以构建在GUI组件、有状态框架(如Wicket)上,也可以以RESTful、无状态的方式构建,GUI状态仅在客户端上 从技术角度来看,REST看起来是正确的方法,因为它充分利用了http的强大功能,并带来了高度可扩展的应用程序。但这是有代价的。在许多情况下,复杂的GUI将需要客户端上的JavaScript应用程序。如果应该在客户端上维护状态,则必须保持在同一页面上,只重新加载部分。或者你必须使用隐藏的iframe的技巧。有时,服务器上有类似购物车的伪资源,以支持RES

基于GUI的web应用程序可以构建在GUI组件、有状态框架(如Wicket)上,也可以以RESTful、无状态的方式构建,GUI状态仅在客户端上

从技术角度来看,REST看起来是正确的方法,因为它充分利用了http的强大功能,并带来了高度可扩展的应用程序。但这是有代价的。在许多情况下,复杂的GUI将需要客户端上的JavaScript应用程序。如果应该在客户端上维护状态,则必须保持在同一页面上,只重新加载部分。或者你必须使用隐藏的iframe的技巧。有时,服务器上有类似购物车的伪资源,以支持RESTful设计。您必须保持多步骤对话的中间状态,等等


如果我环顾四周,很少有RESTful GUI Web应用程序。这是因为历史原因还是RESTful设计在常见场景中没有效率?

我认为RESTful GUI设计非常有效率。无需额外工作,您就可以利用许多功能来支持角落案例,例如用户重新提交信息、浏览器历史记录(向后和向前)多个选项卡和窗口。如果我没有弄错的话,这个网站使用的是RESTful UI。

REST是通过观察成功的web应用程序(GUI和M2M)的特性定义的。因此,根据定义,它应该适用于这些情况

我还注意到你问了一个关于的问题。您可能有兴趣知道REST也是构建桌面客户端应用程序的优秀体系结构。我已经编写了一些桌面客户端,它们从REST服务器获取所有数据

如果我环顾四周,几乎没有 RESTful GUI Web应用程序。这是吗 因为历史原因或者是 RESTful设计通常是无效的 情景

我的答案是主观的,但在我看来,有两个主要障碍阻碍了RESTful的发展:

  • 改变-它与传统的网站设计方式大不相同
  • 挑战-设计一个纯粹的RESTful服务器API和相应的丰富、健壮的客户端UI并不容易
  • 复杂的GUI将需要一个JavaScript 在客户机上的许多应用程序 案例

    在我看来,无论服务器端实现如何,复杂、丰富的客户端体验都需要一些深入的JavaScript

    你必须站在同一页上 仅重新加载零件

    这是一种与传统的请求/响应全页面设计截然不同的设计。每种设计都有自己的权衡。REST设计特别适合AJAX调用,但客户端代码需要仔细设计,以保持可维护性和健壮性

    具有厚客户端的RESTful服务器:

    • 可扩展性好:每个用户的会话信息不会存储在稀缺的服务器内存中
    • 更少的在线请求/响应数据:不完整发送每页,不发送会话ID或
      ViewState
      s
    • 干净的可重用URL:提供一个干净的、解耦的服务器API,可以支持多个UI
    • 纯:严格遵守HTTP规范(GET不会导致任何副作用等)
    • 客户端体验:异步事务更丰富、响应更快
    但是,正如您所提到的,厚客户端也有缺点:

    • RESTful URL更容易受到XSS攻击,因此确实需要谨慎的安全性
    • 复杂的JavaScript在开发、维护和调试方面可能具有挑战性(使用OOJavaScript有助于解决这一问题)
    • 需要向用户指示异步请求正在后台处理
    • 需要更多的客户端故障处理逻辑
    • 与服务器端相比,传统上客户端开发的框架和IDE工具较弱(这一点正在慢慢改善)

    您对“GUI web应用程序”的定义是什么?雅虎网站?堆栈溢出?谷歌地图?org?或者把@deceze的评论转过来:什么时候不是GUI?GUI是一个与人类直接交互的应用程序,而服务是机器对机器通信的一个方面。所以。。。那么网页呢?如果它[主要]是静态的,或者它需要“做点什么”吗?我可以想象REST对于桌面应用程序来说是一个很好的后端,但是在这样的应用程序中很容易管理状态。然而,浏览器中的状态管理在今天已经不是一件小事了。(附言:我没有问上述问题)对不起,我把你和迪米特弄糊涂了。